当前位置: 首页 > 知识库问答 >
问题:

使用jQuery在选项卡之间切换,使用不透明度作为重点

杜河
2023-03-14

问题:

我正在为我的个人作品集网站创建一个画廊页面。我需要它在顶部有多个链接,适合我艺术的不同类别。登陆网站后,将选择“所有”选项,我的艺术的所有缩略图都将显示出来,并且完全不透明。当点击一个链接时,只有属于该链接对应类别的缩略图将保持100%不透明度,而其他缩略图将变暗至50%。

我有代码,我认为是接近正确的,但仍然什么都不做。下面是我正在使用的代码

(缩写)HTML:

<ul id="filterOptions">
<li class="active"><a href="#" class="all">All</a></li>
<li><a href="#" class="ty">Typography</a></li>
<li><a href="#" class="pr">Print</a></li>
</ul>

<ul class="ourHolder">
<li data-type="ty"><a href="img.jpg"><img src="img.png"/></a></li>
<li data-type="il"><a href="img.jpg"><img src="img.png"/></a></li>
<li data-type="pr"><a href="img.jpg"><img src="img.png"/></a></li>

CSS:

$(document).ready(function() {

  var $holder = $('ul.ourHolder');

  var $data = $holder.clone();

    $('#filterOptions li a').click(
    function(e) {
        // reset the active class on all the buttons
        $('#filterOptions li').removeClass('active');

        // assign the class of the clicked filter option
        // element to our $filterType variable
        var $filterType = $(this).attr('class');
        $(this).parent().addClass('active');

        if ($filterType == 'all') {
            // assign all li items to the $filteredData var when
            // the 'All' filter option is clicked
            var $filteredData = $data.find('li');
            $filteredData.animate({opacity: 1.0}, 500);
        } 
        else {
             var $filteredData = $data.find('li[data-type=' + $filterType + ']');
             $filteredData.animate({opacity: 0.5}, 500);
        }

    });
});

非常感谢您的帮助,我需要启动我的新网站,而这段代码正是阻碍我前进的原因!

共有1个答案

谢唯
2023-03-14

JSFIDLE演示

超文本标记语言

<ul id="filterOptions">
    <li class="active"><a href="#" data-type="all">All</a>

    </li>
    <li><a href="#" data-type="ty">Typography</a>

    </li>
    <li><a href="#" data-type="pr">Print</a>

    </li>
</ul>
<ul class="ourHolder">
    <li class="ty"><a href="img.jpg"><img src="img.png"/></a>

    </li>
    <li class="il"><a href="img.jpg"><img src="img.png"/></a>

    </li>
    <li class="pr"><a href="img.jpg"><img src="img.png"/></a>

    </li>
    <li class="ty"><a href="img.jpg"><img src="img.png"/></a>

    </li>
    <li class="il"><a href="img.jpg"><img src="img.png"/></a>

    </li>
    <li class="pr"><a href="img.jpg"><img src="img.png"/></a>

    </li>
</ul>

jQuery

$(document).ready(function () {
    var $holder = $('ul.ourHolder');
    var $data = $holder.clone();
    var holders = $('.ourHolder li');
    $('#filterOptions li a').click(
    function (e) {
        // reset the active class on all the buttons
        $('#filterOptions li').removeClass('active');
        // assign the class of the clicked filter option
        // element to our $filterType variable
        var $filterType = $(this).data('type');
        var noOpac = $(this).data('type');
        $(this).parent().addClass('active');
        if ($filterType == 'all') {
            // assign all li items to the $filteredData var when
            // the 'All' filter option is clicked
            var $filteredData = $data.find('li');
            $filteredData.animate({
                opacity: 1.0
            }, 500);
            $('.ourHolder li').animate({
                opacity: 1.0
            }, 0);
        } else {
            $('.ourHolder li').animate({
                opacity: 0.5
            }, 250);
            $.each(holders, function (i, v) {
                if ($(this).hasClass(noOpac)) {
                    $(this).animate({
                        opacity: 1.0
                    }, 0);
                }
            });
        }

    });
});
 类似资料:
  • 我需要在浏览器选项卡之间切换,使用以下代码, 它有时只是正常工作,但有时表现出异常。有谁能建议我使用Java在一个窗口内切换选项卡的其他说明吗。

  • 问题内容: 所以我有一个包含3个项目的项目: 在的中: 每次单击某个项目时,都会调用一个骨干路由器,该骨干路由器将调用,而后者又将调用一个。 我仍在努力解决基本上存在单向数据流这一事实。而且我习惯直接操作DOM。 我想做的是将类添加到单击的选项卡中,并确保将其从非活动类中删除。 我所知道的CSS技巧,你可以使用属性和不同的造型适用于为属性或。 骨干路由器已经获取了变量并调用正确的页面。我只是不确定

  • 我正在打开一个页面,执行一些操作,我正在使用这段代码在下一个选项卡中打开另一个链接 字符串url=“https://qa.logfireapps.com/lgf_700_qa_rf”; String args1=String.format(“window.open(”%s“,”%s“);”,url,“new”); ((JavascriptExecutor)driver).ExecuteScript

  • 问题内容: 我正在尝试提取URL,将其打开到新选项卡中,然后执行一些操作。我的代码是- 它会在新选项卡中打开URL,但不会对其执行任何操作。我该怎么办?? 问题答案: 您需要将焦点更改为新标签,因为它们通常会在后台打开。然后,您需要抓住当前当前选项卡的句柄。 这在这里描述:

  • 问题内容: 我需要在浏览器标签之间切换,使用以下代码, 它有时仅工作正常,但有时却显示异常。任何人都可以建议我使用Java在单个窗口中切换选项卡是否还有其他说明。 问题答案: 您必须在此处使用窗口句柄功能。这是Java中的示例工作代码: 希望这可以帮助!

  • 我写了示例代码,但它不起作用。还观察到2个选项卡只有1个窗口句柄。如何再次切换到父页签?