首页 > 其他分享 >jQuery和CSS3炫酷3D旋转画廊特效插件

jQuery和CSS3炫酷3D旋转画廊特效插件

时间:2024-12-10 16:22:13浏览次数:3  
标签:jQuery CSS3 插件 figure img transform spinner 画廊 3D

这是一款效果非常炫酷的jQuery和CSS3 3D旋转画廊特效插件。第一个DEMO是一个简单的例子,使用CSS3来制作3d旋转效果,然后用js来控制前后导航按钮。第二个DEMO是第一个DEMO的升级版,它增加了图片标题、查看图片、键盘控制等其它功能。

在线演示 下载

 

HTML结构

这个3D画廊的HTML结构非常简单,DEMO1使用一个div作为wrapper,里面是一个figure元素,figure里面是图片。DEMO2的每张图片都使用一个单独的figure元素。

<div id="gallery">     <figure id="spinner">         <img src="1.jpg" alt="">         <img src="2.jpg" alt="">         <img src="3.jpg" alt="">         <img src="4.jpg" alt="">         <img src="5.jpg" alt="">         <img src="6.jpg" alt="">         <img src="7.jpg" alt="">         <img src="8.jpg" alt="">     </figure> </div>

CSS样式

CSS样式也不复杂:图片和 figure Z轴的 origin 被向屏幕里面的方向旋转500px,并为 figure 提供一个值为1秒的 transition 。图片设置为40%的宽度,并离左边30%的距离,以使它们位于 figure 的中间位置。这样设置可以使3D画廊具有非常好的响应式效果。

body { background: #100000; font-size: 1.5rem; } div#gallery { perspective: 1200px; } figure#spinner { transform-style: preserve-3d; min-height: 122px; transform-origin: 50% 50% -500px; transition: 1s; } figure#spinner img { width: 40%; position: absolute; left: 30%; transform-origin-z: 50% 50% -500px; outline: 1px solid transparent; }

给 figure 元素设置 min-height 和给图片设置 outline 是有原因的。这是另一个问题,将在以后的文章中解释它。当 min-height 属性传递给图片时,确保了它不会发生溢出的情况。

图片通过 nth-child 选择器绕中心轴均匀的分布:

figure#spinner img:nth-child(1) { transform: rotateY(0deg); } figure#spinner img:nth-child(2) { transform: rotateY(-45deg); } figure#spinner img:nth-child(3) { transform: rotateY(-90deg); } figure#spinner img:nth-child(4) { transform: rotateY(-135deg); } figure#spinner img:nth-child(5) { transform: rotateY(-180deg); } figure#spinner img:nth-child(6) { transform: rotateY(-225deg); } figure#spinner img:nth-child(7) { transform: rotateY(-270deg); } figure#spinner img:nth-child(8) { transform: rotateY(-315deg); }

通过上面的设置,你已经做好了一个具有响应式的3D图片画廊效果:当你缩小浏览器屏幕时,图片相应的变小,图片间的间距变大了。

在CSS代码中,我们没有使用各浏览器厂商的前缀,但是使用了 Lea Verou 的prefix-free来使效果可以在各个浏览器上显示。还有,我们在javascript中控制3D画廊旋转的代码中使用了浏览器前缀。

JAVASCRIPT

最后,我们要为3D画廊提供两个前后导航控制箭头,它们使用a元素来制作。

<a href="#" style="float: left" onclick="galleryspin('-')">◀</a> <a href="#" style="float: right" onclick="galleryspin('')">▶</a>

如上所示,左边的导航箭头带有一个符号作为galleryspin的变量。

var angle = 0; function galleryspin(sign) {     spinner = document.querySelector("#spinner");     if (!sign) { angle = angle + 45; } else { angle = angle - 45; }     spinner.setAttribute("style","-webkit-transform: rotateY("+ angle +"deg); transform: rotateY("+ angle +"deg);"); }

上面的函数查看参数(负号)是否存在,然后为画廊相应的添加或删除45度来定位下一张或上一张图片。

高级3D画廊

以上是简单版的3D画廊的所有功能和代码,DEMO2是一个高级版的3D画廊,它在DEMO1的基础上增加了一些功能:

  • 每一张图片都使用单独的 figure 元素来包装,并各自带有标题(鼠标滑过图片时可见到)。
  • 图片的分布完全使用javascript来制作,这使得可以处理任意数量的图片。
  • 图片可以点击放大查看。
  • 可以使用键盘控制:Z键可以放大或缩小图片,C键可以显示或隐藏图片的标题。

浏览器兼容

  • 在桌面版和移动设备的Safari浏览器中,会替换3D画廊的 transform-origin-z 坐标,使其向前推进。
  • IE10因为不支持transform-style,3D画廊显示效果会有错误。
  • 当3d画廊的图片数量增加时,画廊的半径会随之增加。
  • 在高级版中我们将CSS 3D画廊转换为jQuery版本的3D画廊,使得这个效果可以兼容以前版本的浏览器。

标签:jQuery,CSS3,插件,figure,img,transform,spinner,画廊,3D
From: https://www.cnblogs.com/mybook000/p/18597564

相关文章

  • textillate-jQuery和css3文字动画特效库
    textillate.js是一款效果炫酷的jQuery和css3文字动画特效库插件。它通过结合其它一些动画库来制作各种CSS3文字动画特效。在线演示下载 如何使用基本的html结构如下:<h1class="tlt">MyTitle</h1>在页面的头部引入jQuery和jquery.textillate.js文件。......
  • H5流媒体播放器EasyPlayer.js无插件H5播放器如何在iOS上如何实现低延时直播?
    随着流媒体技术的迅速发展,H5流媒体播放器已成为现代网络视频播放的重要工具。其中,EasyPlayer.js播放器作为一款功能强大的H5播放器,凭借其全面的协议支持、多种解码方式以及跨平台兼容性,赢得了广泛的关注和应用。那么要在iOS上实现低延时直播,EasyPlayer.js视频流媒体播放器提供了......
  • JQuery 实现简易记事簿
    这里运用到的技术:1、localStorage保存数据到浏览器,和从浏览器中localStorage取到数据2、JSON.stringify()方法和JSON.parse()方法的运用3、setSelectionRange()方法4、数组的prop添加内容,splice(i,1)删除和替换splice(i,0,'aa')5、attr()和prop()6、on绑定事件html:<ht......
  • Blender插件:Node Wrangler节点编辑插件
    hello,我是爱玩的小松鼠!本篇介绍一下Blender的节点编辑插件NodeWrangler,如下:Ctrl+T:添加纹理设置Ctrl+Shift+点击:节点效果查看Alt+右键滑动:快速连接两个节点Alt+Shift+右键滑动:快速指定连接Ctrl+Shift+右键滑动:添加混合着色器Alt+S:交换混合着色器的连接Ctrl+0:快......
  • Vue.js中高效利用第三方工具类与插件的实践
    在Vue.js项目中,引入并使用第三方工具类和插件可以显著提升开发效率和代码质量。以下是10种好用且高端的Vue.js第三方插件及其简要介绍和使用示例:1.VueRouter简介:VueRouter是Vue.js官方的路由管理器,用于构建单页面应用(SPA)。它提供了动态路由匹配、嵌套路由、路由守卫等功能......
  • Axure如何提升设计师效率?必备高效插件推荐
    Axure是设计行业广泛应用的一款强大工具,其功能复杂而丰富,许多新手可能会因为使用门槛而感到困惑。然而,通过结合一些高效的Axure插件,即使是初学者也能迅速提升自己的设计能力。本文将为你推荐几款实用的Axure插件,它们将极大地提升你的设计效率,帮助你轻松成为设计高手!1.线框图......
  • jQuery点击弹出侧边栏提示信息面板特效
    这是一款用于信息提示的jQuery点击弹出侧边栏提示面板特效插件。当用户点击某个按钮、超链接或进行某些操作后,该插件可以在屏幕的上、下、左、右四个方向弹出一个信息提示面板,来告诉用户操作的结果。在线DEMO  下载 使用方法要使用这个信息替代插件,首先要在页面的头部引......
  • jQuery绚丽全屏飘雪花特效插件
    这是一款使用jQuery制作的绚丽全屏飘雪花特效插件。使用该下雪效果插件可以为你的网站添加非常酷的飘雪效果。 在线预览 下载 对于使用Firefox3.5+、Safari或Chrome浏览器的用户,可以看到下雪场景中的雪花有深度层次感和旋转效果。该jQuery飘雪插件只占用极小的CP......
  • 【Stable Diffusion】ComfyUI 基础教程-环境部署和插件安装
    ComfyUI为StableDiffusion提供了一个强大的节点流程操作界面,带来了更多的[自由度]和可复现性,同时降低了显存要求。对于那些希望深入了解和利用StableDiffusion技术的用户来说,是一个不可多得的选择。(但节点式的工作流也提高了一部分使用门槛。)1.下载和安装ComfyUI首先从......
  • 使用css3实现小车行驶的动画效果
    <!DOCTYPEhtml><html><head><title>CarAnimation</title><style>body{background-color:#f0f0f0;}.container{width:800px;height:200px;margin:50pxauto;border:1pxsolid#ccc;position:relative......