jquery图片特效,jquery简单图片自动轮播代码
老铁们,大家好,相信还有很多朋友对于jquery图片特效和jquery简单图片自动轮播代码的相关问题不太懂,没关系,今天就由我来为大家分享分享jquery图片特效以及jquery简单图片自动轮播代码的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
jquery 页面跳转动画效果
HTML结构
该页面切换特效的HTML结构使用一个<main>元素来作为页面的包裹元素,div.cd-cover-layer用于制作页面切换时的遮罩层,div.cd-loading-bar是进行ajax加载时的loading进度条。
<main>
<div class="cd-index cd-main-content">
<div>
<h1>Page Transition</h1>
<!-- your content here-->
</div>
</div>
</main>
<div class="cd-cover-layer"></div><!-- this is the cover layer-->
<div class="cd-loading-bar"></div><!-- this is the loading bar-->
CSS样式
该页面切换特效中使用body::before和body::after伪元素在页面切换过程中创建两个遮罩层来遮住页面内容。它们的定位是固定定位,高度等于50vh,宽度为100%。默认情况下,使用CSS transform属性将它们隐藏起来(translateY(-100%)/translateY(100%))。当用户切换页面的时候,这些元素被移动回视口当中(通过在<body>元素上添加.page-is-changing class)。
下面的图片演示了这个过程:
页面切换特效
body::after, body::before{
/* these are the 2 half blocks which cover the content once the animation is triggered*/
height: 50vh;
width: 100%;
position: fixed;
left: 0;
}
body::before{
top: 0;
transform: translateY(-100%);
}
body::after{
bottom: 0;
transform: translateY(100%);
}
body.page-is-changing::after, body.page-is-changing::before{
transform: translateY(0);
}
页面切换时,页面内容的淡入淡出效果是通过改变div.cd-cover-layer的透明度实现的。它覆盖了.cd-main-content元素,并具有相同的背景色,然后在<body>被添加.page-is-changing class的时候,将透明度从0修改为1。
Loading进度条使用.cd-loading-bar::before伪元素来制作。默认它被缩小(scaleX(0))和transform-origin: left center。当页面切换开始时它被使用scaleX(1)放大会原来的尺寸。
.cd-loading-bar{
/* this is the loading bar- visible while switching from one page to the following one*/
position: fixed;
height: 2px;
width: 90%;
}
.cd-loading-bar::before{
/* this is the progress bar inside the loading bar*/
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
transform: scaleX(0);
transform-origin: left center;
}
.page-is-changing.cd-loading-bar::before{
transform: scaleX(1);
}
特效中平滑的过渡效果使用CSS Transitions来实现。每一个动画元素都被添加了不同的transition-delay,以实现不同的元素动画顺序。
JAVASCRIPT
该页面切换特效中在链接上使用data-type="page-transition"属性,用于触发页面切换事件。当插件检测到用户点击事件,changePage()方法将被执行。
$('main').on('click','[data-type="page-transition"]', function(event){
event.preventDefault();
//detect which page has been selected
var newPage=$(this).attr('href');
//if the page is not animating- trigger animation
if(!isAnimating) changePage(newPage, true);
});
这个方法会触发页面切换动画,并通过loadNewContent()方法加载新内容。
function changePage(url, bool){
isAnimating= true;
// trigger page animation
$('body').addClass('page-is-changing');
//...
loadNewContent(url, bool);
//...
}
当新的内容被加载后,会替代原来<main>元素中的内容。.page-is-changing class被从body中移除,新加载的内容会被添加到window.history中(使用pushState()方法)。
function loadNewContent(url, bool){
var newSectionName='cd-'+url.replace('.html',''),
section=$('<div class="cd-main-content'+newSectionName+'"></div>');
section.load(url+'.cd-main-content>*', function(event){
// load new content and replace<main> content with the new one
$('main').html(section);
//...
$('body').removeClass('page-is-changing');
//...
if(url!= window.location){
//add the new page to the window.history
window.history.pushState({path: url},'',url);
}
});
}
为了在用户点击浏览器的回退按钮时触发相同的页面切换动画效果,插件中监听popstate事件,并在它触发时执行changePage()函数。
$(window).on('popstate', function(){
var newPageArray= location.pathname.split('/'),
//this is the url of the page to be loaded
newPage= newPageArray[newPageArray.length- 1];
if(!isAnimating) changePage(newPage);
});
jquery图片轮播思路
使用jQuery做轮播图是网页特效中很常见的一个特效。
工具原料:编辑器、浏览器、jQuery
1、实现的总体思路:
首先是初始化部分:将除了第一张轮播图片意外的图片都隐藏,并且隐藏向前、向后按钮,使第一个索引按钮处于激活状态。
2、实现的具体事件处理思路:
事件部分:通过jquery的hover()绑定鼠标上悬以及离开时的事件处理, jquery的bind()方法绑定鼠标点击事件处理向前、向后翻动、轮播控制:pre(), next(), play(), start()开始自动轮播,stop()停止自动轮播。
3、简单的代码示例如下:
<!DOCTYPEhtml>
<html>
<head>
<metacharset="UTF-8">
<title>jquery轮播效果图</title>
<scripttype="text/javascript"src="scripts/jquery-1.9.1.js"></script>
<styletype="text/css">
*{
padding:0px;
margin:0px;
}
a{
text-decoration:none;
}
ul{
list-style:outsidenonenone;
}
.slider,.slider-panelimg,.slider-extra{
width:650px;
height:413px;
}
.slider{
text-align:center;
margin:30pxauto;
position:relative;
}
.slider-panel,.slider-nav,.slider-pre,.slider-next{
position:absolute;
z-index:8;
}
.slider-panel{
position:absolute;
}
.slider-panelimg{
border:none;
}
.slider-extra{
position:relative;
}
.slider-nav{
margin-left:-51px;
position:absolute;
left:50%;
bottom:4px;
}
.slider-navli{
background:#3e3e3e;
border-radius:50%;
color:#fff;
cursor:pointer;
margin:02px;
overflow:hidden;
text-align:center;
display:inline-block;
height:18px;
line-height:18px;
width:18px;
}
.slider-nav.slider-item-selected{
background:blue;
}
.slider-pagea{
background:rgba(0,0,0,0.2);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#33000000,endColorstr=#33000000);
color:#fff;
text-align:center;
display:block;
font-family:"simsun";
font-size:22px;
width:28px;
height:62px;
line-height:62px;
margin-top:-31px;
position:absolute;
top:50%;
}
.slider-pagea:HOVER{
background:rgba(0,0,0,0.4);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#66000000,endColorstr=#66000000);
}
.slider-next{
left:100%;
margin-left:-28px;
}
</style>
<scripttype="text/javascript">
$(document).ready(function(){
varlength,
currentIndex=0,
interval,
hasStarted=false,//是否已经开始轮播
t=3000;//轮播时间间隔
length=$('.slider-panel').length;
//将除了第一张图片隐藏
$('.slider-panel:not(:first)').hide();
//将第一个slider-item设为激活状态
$('.slider-item:first').addClass('slider-item-selected');
//隐藏向前、向后翻按钮
$('.slider-page').hide();
//鼠标上悬时显示向前、向后翻按钮,停止滑动,鼠标离开时隐藏向前、向后翻按钮,开始滑动
$('.slider-panel,.slider-pre,.slider-next').hover(function(){
stop();
$('.slider-page').show();
},function(){
$('.slider-page').hide();
start();
});
$('.slider-item').hover(function(e){
stop();
varpreIndex=$(".slider-item").filter(".slider-item-selected").index();
currentIndex=$(this).index();
play(preIndex,currentIndex);
},function(){
start();
});
$('.slider-pre').unbind('click');
$('.slider-pre').bind('click',function(){
pre();
});
$('.slider-next').unbind('click');
$('.slider-next').bind('click',function(){
next();
});
/**
*向前翻页
*/
functionpre(){
varpreIndex=currentIndex;
currentIndex=(--currentIndex+length)%length;
play(preIndex,currentIndex);
}
/**
*向后翻页
*/
functionnext(){
varpreIndex=currentIndex;
currentIndex=++currentIndex%length;
play(preIndex,currentIndex);
}
/**
*从preIndex页翻到currentIndex页
*preIndex整数,翻页的起始页
*currentIndex整数,翻到的那页
*/
functionplay(preIndex,currentIndex){
$('.slider-panel').eq(preIndex).fadeOut(500)
.parent().children().eq(currentIndex).fadeIn(1000);
$('.slider-item').removeClass('slider-item-selected');
$('.slider-item').eq(currentIndex).addClass('slider-item-selected');
}
/**
*开始轮播
*/
functionstart(){
if(!hasStarted){
hasStarted=true;
interval=setInterval(next,t);
}
}
/**
*停止轮播
*/
functionstop(){
clearInterval(interval);
hasStarted=false;
}
//开始轮播
start();
});
</script>
</head>
<body>
<divclass="slider">
<ulclass="slider-main">
<liclass="slider-panel">
<arel="external nofollow" href="
title="图片1"src="images/1.jpg"></a>
</li>
<liclass="slider-panel">
<arel="external nofollow" rel="external nofollow" rel="external nofollow" href="#"><imgtitle="图片2"src="images/1.jpg"></a>
</li>
<liclass="slider-panel">
<arel="external nofollow" rel="external nofollow" rel="external nofollow" href="#"><imgtitle="图片3"src="images/1.jpg"></a>
</li>
<liclass="slider-panel">
<arel="external nofollow" rel="external nofollow" rel="external nofollow" href="#"><imgtitle="图片4"src="images/1.jpg"></a>
</li>
</ul>
<divclass="slider-extra">
<ulclass="slider-nav">
<liclass="slider-item">1</li>
<liclass="slider-item">2</li>
<liclass="slider-item">3</li>
<liclass="slider-item">4</li>
</ul>
<divclass="slider-page">
<aclass="slider-pre"rel="external nofollow" rel="external nofollow" href="javascript:;;"><</a>
<aclass="slider-next"rel="external nofollow" rel="external nofollow" href="javascript:;;">></a>
</div>
</div>
</div>
</body>
</html>
17个酷炫且实用的图像特效库
以下17个图像特效库兼具酷炫效果与实用性,适合网页开发、移动应用及创意项目:
1. imagehover.css
纯CSS3实现的鼠标悬停动画库,提供44种预设效果(如缩放、旋转、阴影变化等),无需JavaScript,轻量级且易于集成。
2. ImageTiltEffect
通过CSS 3D变换实现图像跟随鼠标的立体倾斜效果,增强页面交互的层次感,适合产品展示或视觉焦点设计。
3. Magnifier.js
纯JavaScript图片放大镜插件,支持鼠标滚轮缩放、多图绑定、自定义事件及加载状态提示,适用于电商产品细节查看。
4. gl-react-image-effects
基于WebGL的跨平台(Web/iOS/Android)图像处理库,支持实时滤镜(如模糊、色调调整),适合需要高性能渲染的移动应用。
5. StickyImageEffect
受启发的粘性图像幻灯片效果,滚动时部分图像固定形成视觉粘连,适合故事性内容展示或品牌宣传页。
6. HeatDistortionEffect
WebGL实现的热变形全屏背景特效,模拟空气扭曲效果,可为游戏或科幻类网站营造沉浸式氛围。
7. ImageDraggingEffects
提供多种拖拽图像时的动态反馈效果(如弹性回弹、惯性滑动),增强用户操作趣味性,适用于创意互动页面。
8. jQuery.BgSwitcher
jQuery插件,支持背景图平滑切换(渐变、淡入淡出等),可配置切换间隔及动画类型,适合需要动态背景的登录页或横幅。
9. FullImageReveal
缩略图滑动展开为全图的交互效果,类似相册浏览,适合图片集展示或作品集网站。
10. diaporama
高性能幻灯片引擎,支持Ken Burns(缩放平移)效果及GLSL着色器过渡,适合需要专业级动画的影像展示项目。
11. FollowCursor
图像旋转角度实时跟随光标位置变化,创造动态视觉追踪效果,适合艺术类或科技感网站。
12. react-native-kenburns-view
React Native组件,实现Ken Burns效果的自动缩放平移动画,优化移动端性能,适合原生应用图片展示。
13. vintageJS
jQuery插件,通过HTML5 Canvas为图像添加复古滤镜(如老照片、褪色效果),支持自定义参数调整,适合怀旧风格设计。
14. ThumbnailGridExpandingPreview
教程指导如何实现类似Google图片的缩略图网格扩展预览,点击后全屏展示细节,适合图片库或画廊类页面。
15. gridder
jQuery插件,与上述教程效果类似,提供缩略图点击展开的交互,支持异步加载内容,优化大图展示性能。
16. MotionTransitionEffect
快速运动过渡动画库,为幻灯片切换添加流畅的视差效果,提升页面动态感,适合产品介绍或故事线叙事。
17. tiltedpage_scroll
滚动时图片产生3D倾斜效果,结合视差滚动增强页面深度,适合产品展示或单页应用(SPA)的视觉设计。
这些库覆盖了从基础交互到复杂动画的多种场景,开发者可根据项目需求选择合适工具,快速提升视觉表现力。
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!