使用jquery </ul> </li>更改<ul>内部<li>的CSS

时间:2014-12-28 13:34:48

标签: javascript jquery html onclick click

第一部分是点击图片。该图像和该图像之前的图像的不透明度为1.其余图像保持不透明度为0.1。

第二部分是指您点击“点击一下”。它重复整体。但是具有不透明度0.1的图像应该是黑白的,它们应该是不可点击的。

我的问题:如何更改ul中某些li的CSS?在这种情况下,不透明度为0.1的li必须变成黑色和白色。我只能改变所有的李。如何禁用黑白图像,以便它们不再可点击?

HTML

<ul id="people">
    <li><img src="person.jpg" alt="person" id="img1"></li>
    <li><img src="person.jpg" alt="person" id="img2"></li>
    <li><img src="person.jpg" alt="person" id="img3"></li>
    <li><img src="person.jpg" alt="person" id="img4"></li>
    <li><img src="person.jpg" alt="person" id="img5"></li>
    <li><img src="person.jpg" alt="person" id="img6"></li>
    <li><img src="person.jpg" alt="person" id="img7"></li>
    <li><img src="person.jpg" alt="person" id="img8"></li>
    <li><img src="person.jpg" alt="person" id="img9"></li>
    <li><img src="person.jpg" alt="person" id="img10"></li>
</ul>

<ul id="people2"></ul>

<ul id="people3"></ul>

<div id="click1">click one</div>
<div id="click2">click two</div>

JQUERY

$( document ).ready(function() {
    $('ul li img').transition({
        opacity: 0.1,
        delay: 500
    }).on('click', function () {
        $(this).closest("ul").find("img").transition({ opacity: 0.1, delay: 500 });
        $(this).closest('li').prevUntil().addBack().find('img').css('opacity', '1');
    });
    $('#click1').on('click', function(){
        $('ul#people').clone(true).appendTo('ul#people2');
        **$('ul#people2 li img').css('opacity', '0');**
        $(this).off('click');
    });
    $('#click2').on('click', function(){
        $('ul#people2').clone(true).appendTo('ul#people3');
        $(this).off('click');
    });
});

1 个答案:

答案 0 :(得分:1)

我刚刚创建了Fiddle并进行了以下调整:

$('#click1').on('click', function(){
   $('ul#people').clone(true).appendTo('ul#people2');
   $("ul#people2 li img[style^='opacity: 0']").addClass('blackWhite').off("click");
});

<强> CSS:

.blackWhite{
   filter: grayscale(100%);
   filter: url(#greyscale);
   filter: gray;
   -webkit-filter: grayscale(1);
}

对于这种黑白效果,我刚刚使用了从这里采取的方法:http://demosthenes.info/blog/532/Convert-Images-To-Black-And-White-With-CSS 并将一个SVG图像添加到HTML。可能有更好的解决方案,但仅作为示例。

我还添加了完整的transition.js - https://github.com/peteboere/jquery-transition/blob/master/jquery.transition.js - 您似乎在小提琴的js-panel开头使用,因为我没有找到包含的在线资源它作为外部资源。您调整后的代码位于评论/* stack code start */

下方的js面板的末尾