请问用JS怎样做这个效果?(点击下边的圆点转换图片)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问用JS怎样做这个效果?(点击下边的圆点转换图片)相关的知识,希望对你有一定的参考价值。

使用Jquery类库,步骤:

1、准备好html

<div class="container">
<div class="item-list">
<div class="item active"><img src="0.jpg" alt="第1张图"></div>
<div class="item"><img src="1.jpg" alt="第2张图"></div>
<div class="item"><img src="2.jpg" alt="第3张图"></div>
</div>
<div class="item-control">
<a href='javascript:;' class="active">●</a>
<a href='javascript:;'>●</a>
<a href='javascript:;'>●</a>
</div>
</div>

2、为html设置样式

<style>
.container
width: 500px;
height: 300px;
text-align: center;
background: red;
position:relative;

.container>.item-control
display: inline-block;
width: 100%;
left: 0;
position: absolute;
bottom: 10px;
background: rgba(0,0,0,0.2);

.container>.item-control>a
font-size: 20px;
color: rgba(255,255,255,0.7);
text-decoration: none;

.container>.item-control>a.active
color: #fff;

.container>.item-list,
.container>.item-list>.item
width: 100%;
height: 100%;

.container>.item-list>.item
display: none;

.container>.item-list>.item.active
display: block;

</style>

3、编写Js

<script>
(function()
$(document).on('click','.container .item-control a',function()
var _index = $(this).index();
$(this).addClass('active').siblings().removeClass('active');
$('.container .item-list .item').eq( _index ).addClass('active').siblings().removeClass('active');
)
)()
</script>

最终效果见图:

参考技术A <!DOCTYPE html>
<html>
<head>
    <title>3种常用网站图片轮播切换代码</title>
    <meta charset="utf-8">
    <link rel="stylesheet" href="css/style.css"/>

    <!--Luara样式文件-->
    <!--渐隐样式-->
    <link rel="stylesheet" href="css/luara.css"/>
    <!--左滑样式-->
    <link rel="stylesheet" href="css/luara.left.css"/>
    <!--上滑样式-->
    <link rel="stylesheet" href="css/luara.top.css"/>

</head>
<body>
    <script src="js/jquery-1.8.3.min.js"></script>
    <!--Luara js文件-->
    <script src="js/jquery.luara.0.0.1.min.js"></script>

    <h5>渐隐</h5>
    <hr/>
    <!--Luara图片切换骨架begin-->
    <div class="example">
        <ul>
            <li><img src="images/1.jpg" alt="1"/></li>
            <li><img src="images/2.jpg" alt="2"/></li>
            <li><img src="images/3.jpg" alt="3"/></li>
            <li><img src="images/4.jpg" alt="4"/></li>
        </ul>
        <ol>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ol>
    </div>
    <!--Luara图片切换骨架end-->
    <script>
    $(function()
        <!--调用Luara示例-->
        $(".example").luara(width:"500",height:"334",interval:4000,selected:"seleted");

    );
    </script>

    <h5>上滑</h5>
    <hr/>
    <!--Luara图片切换骨架begin-->
    <div class="example1">
        <ul>
            <li><img src="images/1.jpg" alt="1"/></li>
            <li><img src="images/2.jpg" alt="2"/></li>
            <li><img src="images/3.jpg" alt="3"/></li>
            <li><img src="images/4.jpg" alt="4"/></li>
        </ul>
        <ol>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ol>
    </div>
    <!--Luara图片切换骨架end-->
    <script>
        $(function()
            <!--调用Luara示例-->
            $(".example1").luara(width:"500",height:"334",interval:5000,selected:"seleted",deriction:"top");

        );
    </script>


    <h5>左滑</h5>
    <hr/>
    <!--Luara图片切换骨架begin-->
    <div class="example2">
        <ul>
            <li><img src="images/1.jpg" alt="1"/></li>
            <li><img src="images/2.jpg" alt="2"/></li>
            <li><img src="images/3.jpg" alt="3"/></li>
            <li><img src="images/4.jpg" alt="4"/></li>
        </ul>
        <ol>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ol>
    </div>
    <!--Luara图片切换骨架end-->
    <script>
        $(function()
            <!--调用Luara示例-->
            $(".example2").luara(width:"500",height:"334",interval:4500,selected:"seleted",deriction:"left");

        );
    </script>
<div style="text-align:center;margin:50px 0; font:normal 14px/24px 'MicroSoft YaHei';">
<p>适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗. </p>
</div>
</body>
</html>

参考技术B

jquery

/*
 * yz silder 背景轮播
 * @ccx
 * 创建于:2014/10/03
 */
(function($)
    $.fn.yzSilder = function(options)
        var settings =
            affect: 'scrollx', //效果  有scrollx|scrolly|fade|none
            speed: 1200, //动画速度
            space: 6000, //时间间隔
            auto: true, //自动滚动
            trigger: 'mouseover', //触发事件 注意用mouseover代替hover
            conbox: '.conbox', //内容容器id或class
            ctag: 'a', //内容标签 默认为<a>
            switcher: '.switcher', //切换触发器id或class
            stag: 'a', //切换器标签 默认为a
            current:'cur', //当前切换器样式名称
            rand:false, //是否随机指定默认幻灯图片
            prev:'#ban_prev',//切换上一张 id或class
            next:'#ban_next',//切换下一张    id或class
            sliderLast:0,
            mousewheel:false,
            sliderFirst:0
        ;
        settings = $.extend(, settings, options);
        var index = 1;
        var last_index = 0;
        var $prev=$(this).find(settings.prev);
        var $next=$(this).find(settings.next);
        var $conbox = $(this).find(settings.conbox),$contents = $conbox.find(settings.ctag);
        /*创建圆点图标并且居中*/
        _create_icon();
        //
        var $switcher = $(this).find(settings.switcher),$stag = $switcher.find(settings.stag);
        if(settings.rand) index = Math.floor(Math.random()*$contents.length);slide();
        if(settings.affect == 'fade')
            $.each($contents,function(k, v)
                (k === 0) ? $(this).css('position':'absolute','z-index':9):$(this).css('position':'absolute','z-index':1,'opacity':0);
            );
        
        function slide()
            if (index >= $contents.length) 
                index = 0;
                if(typeof settings.sliderLast=='function')
                    settings.sliderLast();
                    //return
                

            
            if(index<0) 
                index=$contents.length-1;
                if(typeof settings.sliderFirst=='function')
                    settings.sliderFirst();
                    return
                
            
            $stag.removeClass(settings.current).eq(index).addClass(settings.current);
            switch(settings.affect)
                case 'scrollx':
                    $conbox.width($contents.length*$contents.width());
                    $conbox.stop().animate(left:-$contents.width()*index,settings.speed);
                break;
                case 'scrolly':
                    $contents.css(display:'block');
                    $conbox.stop().animate(top:-$contents.height()*index+'px',settings.speed);
                    break;
                case 'fade':
                    $contents.eq(last_index).stop().animate('opacity': 0, settings.speed/2).css('z-index',1)
                        .end()
                        .eq(index).css('z-index',9).stop().animate('opacity': 1, settings.speed/2)
                    break;
                case 'none':
                    $contents.hide().eq(index).show();
                    break;
            
            last_index = index;
            index++;
        ;
        if(settings.auto) var Timer = setInterval(slide, settings.space);
        $stag.bind(settings.trigger,function()_pause()
            index = $(this).index();
            slide();
            _continue()
        );

        if(settings.mousewheel)
            $(this).bind('mousewheel', function(event, delta) 
                event.preventDefault();
                if(delta<0)
                    slide();
                    _continue()
                
                else
                    index =last_index-1;
                    slide();
                    _continue()
                
            );
        

        //异类啊!!
        $prev.bind("click",function()_pause()
            index =last_index-1;
            slide();
            _continue()
        );

        $next.bind("click",function()_pause()
            index =last_index+1;
            slide();
            _continue()
        );

        $conbox.hover(_pause,_continue);
        function _pause()
            clearInterval(Timer);
        
        function _continue()
            if(settings.auto)Timer = setInterval(slide, settings.space);
        
        /*创建圆点图标;根据轮播图片的数量*/
        function _create_icon()
            var _html = '';
            for(var i=1;i<=$contents.length;i++)
                if(i==1) _html+= '<li class="'+ settings.current +'"><a href="javascript:void(0);" target="_self">'+ i +'</a></li>';
                else _html+= '<li class=""><a href="javascript:void(0);" target="_self">'+ i +'</a></li>';
            
            $(settings.switcher).html(_html);
        
    
)(jQuery);

参考技术C

你改改宽度和高度就能用了要单独说下面那个原点的原理,你就写一组li或者span或者a呀,然后循环下,给每个添加上点击事件123456//6个点varoDiv=document.getElementById(\'num\');varaSpan=oDiv.getElementsByTagName(\'span\');variCur=0;for(vari=0;i=iLen)aLi[0].style.left=\'0\';oUl.style.left=\'0\';iCur=this.index;大概就这样的,要想写运动可以再加上运动效果

参考技术D

    结构:图片和小圆点一一匹配

    事件:onmouseover/onclick

    实现:对应的图片显现出来(display)

    思路:点击对应的小按钮出现对应的图片,给对应的按钮添加自定义属性,让图片获取当前按钮下的属性

使用ViewPager实现图片轮播

参考技术A

首先我们来看一下运行的效果,如下所示:

  这是在我们的项目中经常会用到的图片轮播效果,一般用于广告图片的展示。

1)自动播放;
  2)无限滑动;
  3)手指拖拽图片时暂停自动轮播,松开后继续自动轮播;
  4)含动画效果的小圆点指示器。

本文将介绍利用ViewPager实现无限轮播图片,图片下方加上小圆点指示器标记当前位置,并利用Handler实现自动轮播图片。

1、实现自动播放
思路:没隔一段时间让ViewPager更换一次页卡,使用Handler来实现。

1)标记是否自动播放

2)每隔一段时间使用Handler发送一次更换页卡的任务

3)在任务中每隔一段时间再次发送任务,这样循环发送就实现了自动播放的效果。

2、实现无限滑动
思路:设置页卡视图列表时,在前后额外各加一个页卡。最前面加最后一张图片,最后面加第1张图片。然后每当切换到最前的页卡时,就替换成倒数第2个页卡;每当切换到最后的页卡时,就替换成第2个页卡。这样一来就形成了连贯,自然实现了无限滑动的功能。

1)设置ViewPager的视图列表时,在前后各加一个页卡。

2)在监听ViewPager的页卡状态改变中,当滑动到第1个页卡时替换成倒数第2个页卡;当滑动到最后一个页卡时替换成第2个页卡。

3、手指滑动图片时停止自动播放
思路:使用一个标记来控制是否自动播放。

1)声明一个boolean变量,用来标记是否播放。

2)默认是自动播放,但当图片少于2张时不自动播放。

3)根据标记判断是否切换页卡

4)在监听ViewPager的页卡状态改变中,如果是拖动状态就不切换页卡。

4、自定义指示器
思路:使用一个LinearLayout作为容器,然后根据图片的数量向容器中不断添加绘制的小圆点,另外再设置变大变小的属性动画用于动画效果。监听ViewPager的页卡,每当切换到一个页卡时就将切换对应状态的小圆点,并且设置相应的动画效果。

1)绘制小圆点
未选中状态,灰色的圆。

选中状态,白色的圆。

2)属性动画
变大

变小

3)设置指示器
先是统一设置属性并添加到容器中,然后默认第1个小圆点为选中状态。选中状态的小圆点颜色由灰色变成白色,并且变大。

4)监听页卡
当页卡被选中时,相应的小圆点颜色由灰色变成白色,并且变大;之前的小圆点颜色由白色变成灰色,并且变小。

源码地址
ImageSlideshow

以上是关于请问用JS怎样做这个效果?(点击下边的圆点转换图片)的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript怎样做出一个画圆圈的效果啊,比如一张图片是一个小圆点,怎样让这个小圆点以20p

我看到网页里有一张图片,鼠标移动上去,图片会动一下,我不想用css做请问怎么解决哦

请问这个不用js的轮播效果是怎么弄的?

用自己的图片怎么做挂历

emf格式的图片怎样转换成清晰的jpg格式图片

用vue写一个轮播图效果