自动滑动的banner图

实例:

HTML页面:

<div style="position: absolute; left: 0; top: 0; width: 100%; height: 100%; min-width: 1200px;">
   <div class="slider" id="slider">
      <div class="slider-inner">
         <div class="item">
            <img src="/public/home/images/1.jpg" ">
         </div>
         <div class="item">
            <img src="/public/home/images/21.jpg" ">
         </div>
      </div>
   </div>
</div>
CSS代码:
.slider {
    position: relative;
    height: 400px;
    min-width: 1004px;
    width: 100%;
    overflow: hidden;
}

.slider .slider-pointer {
    position: absolute;
    bottom: 20px;
    color: #fff;
    list-style: none;
    padding: 0;
    z-index: 999;
}

.slider .slider-pointer li {
    display: inline-block;
    margin: 0 15px;
    width: 15px;
    height: 15px;
    border-radius: 15px;
    background-color: #ffffff;
    opacity: 0.85;
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.5);
    transition: all 320ms ease;
}

.slider .slider-pointer li:hover {
    background-color: #e30006;
}

.slider .slider-pointer li.active {
    background-color: #b00005;
}

.slider .slider-inner {
    width: 100%;
    height: 100%;
    position: relative;
}

.slider .slider-inner .item {
    width: 100%;
    height: 100%;
    float: left;
}

.slider .slider-inner .img {
    background-position: center top !important;
    width: 100%;
    height: 100%;
}

.slider .slider-control {
    position: absolute;
    width: 30px;
    height: 30px;
    z-index: 999;
    border-radius: 30px;
    text-align: center;
    font-weight: 900;
    font-size: 20px;
    line-height: 30px;
    background-color: #ffffff;
    opacity: 0.5;
    cursor: pointer;
    top: 40%;
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.5);
    transition: all 320ms ease;
}

.slider .slider-control:hover {
    opacity: 0.65;
    background-color: #b00005;
}

.slider .slider-control:active {
    opacity: 0.85;
}

.slider .slider-control.prev {
    display: none;
    left: 20px;
}

.slider .slider-control.next {
    display: none;
    right: 20px;
}

.slider:hover .slider-control.prev {
    display: block;
    left: 20px;
}

.slider:hover .slider-control.next {
    display: block;
    right: 20px;
}

Javascript代码:

    /**
         * Author         : CheneyLiu
         * Date           : date
         * isAuto:        true, 自动播放
         * transTime:     3000, 自动播放间隔
         * animateSpeed:  1000,  动画速度
         * sliderMode:    ‘slide‘, 类型//‘slide | fade‘,
         * pointerControl: true, 指示器开关
         * pointerEvent:  ‘click‘, 指示器类型//‘hover‘ | ‘click‘,
         * arrowControl:  true, 左右控制
         */
        ;
        (function($) {
            $.fn.Slider = function(options) {
                "use strict";

                var settings = $.extend({
                    isAuto : true,
                    transTime : 3000,
                    animateSpeed : 1000,
                    sliderMode : ‘slide‘, //‘slide | fade‘,
                    pointerControl : true,
                    pointerEvent : ‘click‘,//‘hover‘ | ‘click‘,
                    arrowControl : true,
                }, options);
                var interval;
                var isAnimating = false;
                var $slider = $(this);
                var $sliderWrap = $slider.find(‘.slider-inner‘);
                var sliderCount = $sliderWrap.find(‘> .item‘).length;
                var sliderWidth = $slider.width();
                var currentIndex = 0;

                var sliderFun = {
                    controlInit : function() {
                        // pointerControl
                        if (settings.pointerControl) {

                            var html = ‘‘;
                            html += ‘<ol class="slider-pointer">‘;
                            for (var i = 0; i < sliderCount; i++) {
                                if (i == 0) {
                                    html += ‘<li class="active"></li>‘
                                } else {
                                    html += ‘<li></li>‘
                                }
                            }
                            html += ‘</ol>‘
                            $slider.append(html);
                            // 指示器居中
                            var $pointer = $slider.find(‘.slider-pointer‘);
                            $pointer.css({
                                left : ‘50%‘,
                                marginLeft : -$pointer.width() / 2
                            });
                        }
                        // pointerControl
                        if (settings.arrowControl) {
                            var html = "";
                            html += ‘<span class="slider-control prev">&lt;</span>‘;
                            html += ‘<span class="slider-control next">&gt;</span>‘
                            $slider.append(html);
                        }
                        $slider.on(‘click‘, ‘.slider-control.prev‘, function(
                                event) {
                            sliderFun.toggleSlide(‘prev‘);
                        });
                        $slider.on(‘click‘, ‘.slider-control.next‘, function(
                                event) {
                            sliderFun.toggleSlide(‘next‘);
                        });
                    },
                    // slider
                    sliderInit : function() {
                        sliderFun.controlInit();
                        // 模式选择
                        if (settings.sliderMode == ‘slide‘) {
                            // slide 模式
                            $sliderWrap.width(sliderWidth * sliderCount);
                            $sliderWrap.children().width(sliderWidth);
                        } else {
                            // mode 模式
                            $sliderWrap.children().css({
                                ‘position‘ : ‘absolute‘,
                                ‘left‘ : 0,
                                ‘top‘ : 0
                            });
                            $sliderWrap.children().first().siblings().hide();
                        }
                        // 控制事件
                        if (settings.pointerEvent == ‘hover‘) {
                            $slider.find(‘.slider-pointer > li‘).mouseenter(
                                    function(event) {
                                        sliderFun.sliderPlay($(this).index());
                                    });
                        } else {
                            $slider.find(‘.slider-pointer > li‘).click(
                                    function(event) {
                                        sliderFun.sliderPlay($(this).index());
                                    });
                        }
                        // 自动播放
                        sliderFun.autoPlay();
                    },
                    // slidePlay
                    sliderPlay : function(index) {
                        sliderFun.stop();
                        isAnimating = true;
                        $sliderWrap.children().first().stop(true, true);
                        $sliderWrap.children().stop(true, true);
                        $slider.find(‘.slider-pointer‘).children().eq(index)
                                .addClass(‘active‘).siblings().removeClass(
                                        ‘active‘);
                        if (settings.sliderMode == "slide") {
                            // slide
                            if (index > currentIndex) {
                                $sliderWrap.animate({
                                    left : ‘-=‘
                                            + Math.abs(index - currentIndex)
                                            * sliderWidth + ‘px‘
                                }, settings.animateSpeed, function() {
                                    isAnimating = false;
                                    sliderFun.autoPlay();
                                });
                            } else if (index < currentIndex) {
                                $sliderWrap.animate({
                                    left : ‘+=‘
                                            + Math.abs(index - currentIndex)
                                            * sliderWidth + ‘px‘
                                }, settings.animateSpeed, function() {
                                    isAnimating = false;
                                    sliderFun.autoPlay();
                                });
                            } else {
                                return;
                            }
                        } else {
                            // fade
                            if ($sliderWrap.children(‘:visible‘).index() == index)
                                return;
                            $sliderWrap.children().fadeOut(
                                    settings.animateSpeed).eq(index).fadeIn(
                                    settings.animateSpeed, function() {
                                        isAnimating = false;
                                        sliderFun.autoPlay();
                                    });
                        }
                        currentIndex = index;
                    },
                    // toggleSlide
                    toggleSlide : function(arrow) {
                        if (isAnimating) {
                            return;
                        }
                        var index;
                        if (arrow == ‘prev‘) {
                            index = (currentIndex == 0) ? sliderCount - 1
                                    : currentIndex - 1;
                            sliderFun.sliderPlay(index);
                        } else if (arrow == ‘next‘) {
                            index = (currentIndex == sliderCount - 1) ? 0
                                    : currentIndex + 1;
                            sliderFun.sliderPlay(index);
                        }
                    },
                    // autoPlay
                    autoPlay : function() {
                        if (settings.isAuto) {
                            interval = setInterval(function() {
                                var index = currentIndex;
                                (currentIndex == sliderCount - 1) ? index = 0
                                        : index = currentIndex + 1;
                                sliderFun.sliderPlay(index);
                            }, settings.transTime);
                        } else {
                            return;
                        }
                    },
                    //stop
                    stop : function() {
                        clearInterval(interval);
                    },
                };
                sliderFun.sliderInit();
            }
        })(jQuery);
        jQuery(document).ready(function($) {
            $(‘#slider‘).Slider();
        });

以上是做banner的基本代码实例。

时间: 2024-10-14 21:23:41

自动滑动的banner图的相关文章

JS移动客户端--触屏滑动事件 banner图效果

JS移动客户端--触屏滑动事件 移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等事件来完成.但是在移动设备上,要实现这种轮播的效果,就需要用到核心的touch事件.处理touch事件能跟踪到屏幕滑动的每根手指. 以下是四种touch事件 touchstart:     //手指放到屏幕上时触发 touchmove:      //手指在屏幕上滑动式触发 touchend:    //手指离开屏幕时触发 touchcancel:     //系统取

原生JS实现各种经典网页特效——Banner图滚动、选项卡切换、广告弹窗等

在制作网页过程中,我们可能会遇到各种常用的经典网页特效,比如Banner图片滚动.选项卡循环播放.右下角广告弹窗.评论提交展示.选项动态增删.剪刀石头布小游戏等等等...是不是感觉都见到过这些场景.那些这些场景都是如何实现的呢?今天,小瑞老师就一口气把所有经典网页特效效果送给大家!!!          全部都是原生JS实现哦~~根本不需要什么JQuery.AngularJS等各种类库,是不是很激动,让我们开始吧~         Tips: 可以收藏博客,保存源码,关键时刻Ctrl+C哦~[微

Android网络项目课程笔记-----滑动Tab&amp;Banner

1. 滑动Tab 原理: TabHost(TabContent萎缩) + ViewPager 2. Banner广告条 1) 功能列表 a) 水平滑动                 OK b) 可以点击                 OK c) 循环滚动                 OK d) 自动滚动                 OK e) 手动自动冲突 menuDrawer和ViewPager冲突 banner和滑动Tab冲突 banner和MenuDrawer冲突 f) 指示器

jquery自定义banner图滚动插件---(解决最后一张图片倒回第一张图片的bug)

banner图的滚动效果动画 最近做项目中banner滚动的时候遇到了一个小bug,当banner滚动到最后一张图再跳回第一张图时, 会出现默认的倒回第一张图的过渡效果,看了几个插件都是这样,所以自定义了一个插件修改了一下, 方便以后使用. by一个刚上路的女码农 有后退动画的banner效果如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>jquer

banner 图切换

亲手写出来的模仿http://ke.qq.com/ 中的banner图切换 ,并添加了自动切换效果 代码中的图片 可以到上面网址中下载,注意图片命名,和引入jquery的版本 代码如下: <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>banner change demo</title> <s

swiper 窗口宽度变化,页面宽度高度变化 导致自动滑动 解决方案

又又又又是swiper问题 背景: pc端项目,rem布局,swiper作为步骤条(上一步,下一步)的功能. 发现在屏幕拖动,宽高的变化,窗口大小的变化 会引起swiper自动滑动(到下一步). 在下载文件链接时候回轻微引起一点点宽高的变化,导致直接滑到下一步. Chrome浏览关闭底部下载内容时候也会导致滑动 思考: 1.刚开始以为是某个地方不小心多加了下一步的操作,一直在查找 2.然后以为是下载的方法导致的,更换了多种下载方案 3.实在没有找出,准备debugger的时候发现,屏幕变化也会引

仿优酷Android客户端图片左右滑动(自动滑动)

最终效果: 页面布局main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent

原生JS和jQuery实现banner图滚动那些事

  前  言 阿q 作为一个准前端学员,banner图可是很重要的呢.本人,小白一只,给大家分享几个刚刚学习的基础banner图事件.~~~ 1. 小广告图滚动播放 1.1HTML代码 首先,创建基本结构 <div id="outside"> <div id="inside"> <div>1</div> <div>2</div> <div>3</div> <div&

双击导航栏自动滑动ListView到顶部

有些app都实现了双击导航栏让页面的list自动滑动到顶部的feature. 先实现一个继承于OnTouchListener的监听多次点击事件的监听器,通过callback把连续点击的次数返回给客户代码,代码见gist:MultiTouchListener.java. https://gist.github.com/Viyu/d06eda19f9bcf7223f6b 然后给导航栏添加下面这个OnTouchListener的实现: OnMultiTouchListener mOnMultiTouc