• 每次移1px的无缝轮播图


    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>每次移1px的案例</title>
    	<script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
    	<style type="text/css">
    		body{
    			background: pink;
    		}
    		.d1{
    			margin-top: 20px;
    			 100px;
    			overflow: hidden;
    			position: relative;
    			height: 80px;
    			background: #fff;
    
    						
    		}
    		.d2{
    			 1880px;
    			position: absolute;
    		}
    		.d2>p{
    			margin-top: 0px;
    			float: left;
    			 100px;
    		}
    		.p1{
    			background: red;
    		}
    		.p2{
    			background: yellow;
    		}
    		.p3{
    			background: green;
    		}
    	</style>
    </head>
    <body>
    	<div class="d1">
    		<div class="d2">
    			<p class="p1">1</p>
    			<p class="p2">2</p>			
    			<p class="p3">3</p>	
    		</div>
    	</div>
    </body>
    </html>
    <script type="text/javascript">
    	var num=0;
    	var pWidth = $('.d2>p').innerWidth()*$('.d2>p').length;
    	var d2content =$('.d2').html();
    	$('.d2').append(d2content)
    	var time = setInterval(function(){
    		num++	
    		if(num>3){
    			num=0;
    		}
    		$('.d2').animate({'left':'-'+num*100+'px'});
    	},1000)
    
    
    </script>
    
    <!--
    	1、做轮播图如果是每次移动1px就用css({'left':'-'+num+'px'}),不要用animate({'left':'-'+num+'px'})因为animate其实是css({'left':'-'+num+'px'})+css的transition组合,每次会有一卡一卡的效果(这里的num所有要偏移图片集合的宽度)。
    	2、做轮播图如果是一次性移动一整张图片用css({'left':'-'+num*100+'px'})无动画效果直接切换到下一张,用animate({'left':'-'+num*100+'px'})有动画效果,会看到是一整张图从右边到左边一个滑动的效果(这里的num是图片的张数,100px是每张图片的完度)。
     -->
    

    讲解

    <div class="d1">
    	<div class="d2">
    		<p class="p1">1</p>
    		<p class="p2">2</p>			
    		<p class="p3">3</p>	
    	</div>
    </div>
    
    //最外层 一定要设置需要显示的宽度、隐藏宽度以外的部分、相对定位。
    .d1{
    	 300px;
    	overflow: hidden;
    	position: relative;
    }
    //第二层 宽度设置到最大、绝对定位。这是被移动的部分。
    .d2{
    	 1880px;
    	position: absolute;
    }
    //第三层 浮动及可。
    .d2>p{
    	float:left;
    }
    
    //为了能把d2里的内容无缝的轮播,需要把d2的内容复制一份.滚动的宽度不大于所有p集合的宽度(没有复制前)
    	var num=0;
    	var pWidth = $('.d2>p').innerWidth()*$('.d2>p').length;	
    	var d2content =$('.d2').html();
    	$('.d2').append(d2content)
    	var time = setInterval(function(){
    		num++	
    		if(num>pWidth){
    			num=0;
    		}
    		$('.d2').css('left','-'+num+'px');
    	},30)
    
    
  • 相关阅读:
    前端学习数据库之子元素
    最详细win7下手动搭建PHP环境:apache2.4.23+php7.0.11
    Javascript实现页面跳转的几种方式
    读书笔记:《HTML5开发手册》Web表单
    C#开发微信门户及应用(26)-公众号微信素材管理
    APP开发基础知识
    C#学习路线
    ASP.NET机制详细的管道事件流程
    SQL Serve中的6种事务隔离级别简单总结
    Asp.net设计模式笔记之一:理解设计模式
  • 原文地址:https://www.cnblogs.com/hyx626/p/9583795.html
Copyright © 2020-2023  润新知