<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <!--轮播--> <style> .carousel { width: 648px; height: 400px; margin: 0 auto; text-align: center; position: absolute; left: 24%; /*border: 1px solid red;*/ } .inner { /*border: 12px solid blue;*/ width: 648px; height: 400px; position: absolute; } .inner-img { width: 200px; height: 500px; display: none; /*position: absolute;*/ position: relative; /*top:0;*/ /*left:0;*/ /*z-index:1000;*/ } .inner-img.active { display: block; } .leftBtn, .rightBtn { position: absolute; width: 40px; height: 60px; background: rgba(0, 0, 0, 0.3); /*近乎透明色*/ font-size: 30px; color: #fff; text-align: center; line-height: 60px; cursor: pointer; display: none; } .leftBtn { left: 5px; top: 170px; } .rightBtn { /*right:5px;*/ left: 603px; top: 170px; } .carousel ul { position: absolute; /*left:20px;*/ padding-left: 228px; bottom: 10px; /*z-index: 999;*/ list-style: none; width: 200px; height: 20px; } .carousel ul .page { float: left; width: 18px; height: 18px; line-height: 18px; border-radius: 18px; /*变成圆形*/ background: black; margin-right: 6px; /*距离6个px单位*/ color: #fff; font-size: 14px; /*text-align: center;*/ cursor: pointer; } .carousel ul .page.active { background-color: red; } .carousel p { /*float: left;*/ margin-top: -360px; margin-right: -600%; color: black; text-decoration: none; list-style: none; } </style> </head> <body> <!--轮播--> <p class="carousel"> <p class="inner"> <a href="#" class="inner-img active"><img src="https://s2.ax1x.com/2019/11/06/MCxe0O.jpg" alt="图片加载中" width="648" height="400"></a> <a href="#" class="inner-img"><img src="https://s2.ax1x.com/2019/11/06/MCxl9A.jpg" alt="图片加载中" width="648" height="400"></a> <a href="#" class="inner-img"><img src="https://s2.ax1x.com/2019/11/06/MCxJnf.jpg" alt="图片加载中" width="648" height="400"></a> <a href="#" class="inner-img"><img src="https://s2.ax1x.com/2019/11/06/MCxtHS.jpg" alt="图片加载中" width="648" height="400"></a> <a href="#" class="inner-img"><img src="https://s2.ax1x.com/2019/11/06/MCxaNQ.jpg" alt="图片加载中" width="648" height="400"></a> <a href="#" class="inner-img"><img src="https://s2.ax1x.com/2019/11/06/MCx6BT.jpg" alt="图片加载中" width="648" height="400"></a> <a href="#" class="inner-img"><img src="https://s2.ax1x.com/2019/11/06/MCxW4J.jpg" alt="图片加载中" width="648" height="400"></a> <a href="#" class="inner-img"><img src="https://s2.ax1x.com/2019/11/06/MCx43R.jpg" alt="图片加载中" width="648" height="400"></a> <p class="leftBtn"><</p> <!--左按钮--> <p class="rightBtn">></p> <!--右按钮--> </p> <ul> <li class="page active">1</li> <li class="page">2</li> <li class="page">3</li> <li class="page">4</li> <li class="page">5</li> <li class="page">6</li> <li class="page">7</li> <li class="page">8</li> </ul> </p> </body> <script> var carousel = document.getElementsByClassName('carousel')[0], //获取carousel的class类 // 获取所有包含图片的链接 innerImg = document.getElementsByClassName('inner-img'), // 获取左右按钮 btnL = document.getElementsByClassName('leftBtn')[0], btnR = document.getElementsByClassName('rightBtn')[0], // 获取分页器 page = document.getElementsByClassName('page'), num = 0; // 声明变量 初始图片为第一张0 // 声明时间控制函数 var timer = setInterval(moveR, 2500); //调用moveR 时间间隔2.5s // 图片向右轮播 function moveR() { num++; // 变量每3000毫秒递增一次,图片向右轮播 // 如果是最后一张图片的时候从0开始显示 if(num == innerImg.length) { num = 0; } move(); }; // 图片向左轮播 function moveL() { num--; // 每调用一次moveL(),变量递减一次 // 如果是第一张图片,则从最后一张图片开始显示 if(num == -1) { num = innerImg.length - 1; }; move(); } // 图片切换 function move() { // 把所有的innerImg隐藏和page背景全部变成黑色 for(var i = 0; i < innerImg.length; i++) { innerImg[i].style.display = 'none'; page[i].style.background = 'black'; } // 把当前num下标的innerImg显示和page背景变成red innerImg[num].style.display = 'block'; page[num].style.background = 'red'; } // 分页器鼠标滑过时图片切换 for(var i = 0; i < page.length; i++) { // 用来保存下标,page[i].index == 0 / 1 / 2 / 3 /4... page[i].index = i; // console.log(page[i].index); // 因为已经保存好的下边,这里的page[i], page[0], page[1], page[2], page[3] page[i].onmouseover = function() { for(var j = 0; j < page.length; j++) { page[j].style.background = 'black'; innerImg[j].style.display = 'none'; } this.style.background = 'red'; // console.log(this.index);可以查看是多少 innerImg[this.index].style.display = 'block'; num = this.index; } } btnL.onclick = function() { moveL(); } btnR.onclick = function() { moveR(); } // 鼠标划上carousel时让左右按钮显示 并清除时间函数 carousel.onmouseover = function() { // 清除时间函数 clearInterval(timer); //暂停 图片不继续循环 btnR.style.display = 'block'; btnL.style.display = 'block'; } // 鼠标离开carousel时让左右按钮隐藏 carousel.onmouseout = function() { // 开启时间函数 timer = setInterval(moveR, 2500); btnR.style.display = 'none'; btnL.style.display = 'none'; } </script></html>
如何使用纯CSS、JS实现图片轮播效果
在HTML/CSS中将页脚保留在底部
在HTML/CSS中将页脚保留在底部可以通过以下几种方法实现: 使用固定高度的页脚:可以通过设置页脚的高度和底部边距来实现。首先,将页面的整体布局分为头部、内容区域和页脚三个
HTML图片铺满div元素不变形,超出部分隐藏,保留中心部分css代码
在我们网站更新文章的时候,经常会插入图片,丰富信息。但是我们插入的图片长宽比例并不一定是固定的。我们在调用缩略图的时候,常常会出现图片变形的情况,高和宽不成比例。那么如
HTML页面如何保证背景图缩放大小一致
HTML页面如何保证背景图缩放大小一致在网页设计中,背景图是一个常见的元素,它可以为网页增添美感和视觉效果。然而,当用户在不同设备上访问网页时,由于屏幕尺寸和分辨率的不同,背
html如何更优雅的使footer保持在页面的最底部
使用flex布局实现了页脚始终在容器底部。这几天在做一个页面时用到了Grid网格布局,突然想到,用Grid布局实现粘性页脚貌似更简单啊。什么是Grid网格布局Grid布局能将一个页面划
CSS3 伪元素与伪类选择器区别与应用实例详解
伪元素与伪类两者都是通过在选择器后附加一个特定的关键字来定义,遵循相似的语法规则,并在 CSS 规则块中设置相应的样式。伪元素 能够通过 content 属性添加或替换内容。例如,:
如何保持CSS3动画结束状态不变
引言CSS3动画为网页设计带来了丰富的动态效果,使得页面更加生动和吸引人。然而,有时我们希望动画在结束时保持最终状态,而不是回到初始状态。本文将介绍几种方法来实现这一效果
CSS3 新特性 box-shadow 阴影效果、圆角border-radius效果实现
圆角使用CSS3 border-radius属性,你可以给任何元素制作"圆角",border-radius属性,可以使用以下规则:
(1)四个值:第一个值为左上角,第二个值为右上角,第三个值为右下角,第四个值为左下
CSS3中的@media查询常见问题
CSS3的@media查询是一种强大的功能,允许我们根据不同的媒体类型和设备特性来应用不同的样式规则。这使得我们能够创建响应式设计,确保网站或应用在各种设备和屏幕尺寸上都能提
CSS盒子模型、圆角边框、盒子阴影效果实现
页面布局的三大核心:盒子模型、浮动、定位。盒子模型、圆角边框盒子模型网页布局的核心:通过css摆放盒子。
盒子模型的组成包括:边框、外边距、内边距、实际内容padding:默认顶
如何利用CSS实现视差滚动和抖动效果
背景: 前端的设计效果,越来越炫酷,而这些炫酷的效果,利用css3的动画效果和js就可以实现,简单的代码就能实现非常炫酷的效果。
原理: 利用 js监控scrollTop的位置,通过 top定位图片
css边框修饰实现代码
一、设置线条样式通过 border-style 属性设置,可选择的一些属性如下: dotted:点线 dashed:虚线 solid:实线 double:双实线效果如下:二、设置边框线宽度① 通过 border-width 整体设
CSS的:required和:optional伪类:如何增强表单字段的视觉识别
在网页设计中,表单是用户与网站交互的重要元素之一。为了提升用户体验并引导用户正确填写表单,开发者需要清晰地标识出哪些字段是必填的,哪些是可选的。CSS提供了两个非常有用
CSS图片铺满div的实现方法
第一种结构:图片是子元素<div> <img src="引入图片地址" alt="" class="Img"></div>方法一:img元素添加 object-fit:coverdiv{ width: 500px; height: 500px;}.I
css实现四角边框效果
css实现四角边框 html: <div class="box" v-for="(item, index) in coldBaseInfo.stationModelList" :key="index" >
CSS 中的overscroll-behavior属性详解
overscroll-behavior 是 CSS 中的一个属性,它用于控制元素在发生滚动时,当滚动范围超出其边界时的行为。这个属性对于改善用户体验特别有用,尤其是在移动端设备上,当用户尝试滚
CSS使用filter和backdrop-filter实现高斯模糊效果(示例代码)
背景今天接到一个需求是,使用高斯模糊的效果对一个页面进行模糊处理,正好借这个机会来整理一下 css3 中高斯模糊的两个 APIAPI介绍filter说明:
该 API 是一个过滤器,不仅能实现
【现代 CSS】标准滚动条控制规范 scrollbar-color 和 scrollbar-width
Chrome 在 121 版本开始,原生支持了两个滚动条样式相关的样式 scrollbar-color 和 scrollbar-width。要知道,在此前,虽然有 ::-webkit-scrollbar 规范可以控制滚动条,可是,::-web
CSS之定位Position
前言之前在《CSS之浮动》中,我当时是想一起说说定位的,因为我在很多地方看到有把float和position放在一起讲的,说它们的一些属性值可以使元素脱离文档流,但是没想到在准备内容的
三种方式使用纯 CSS 实现星级评分
本文介绍三种使用纯 CSS 实现星级评分的方式。每种都值得细品一番~五角星取自 Element Plus 的 svg 资源<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"
现代 CSS 解决方案:accent-color 强调色
accent-color 是从 Chrome 93 开始被得到支持的一个不算太新属性。之前一直没有好好介绍一下这个属性。直到最近在给一些系统整体切换主题色的时候,更深入的了解了一下这个属
CSS布局技巧:实现全屏背景图片的最佳实践
在网页设计中,全屏背景图片是一种常见的技巧,可以为网页增添视觉上的冲击力和吸引力。在CSS中,有几种方法可以实现全屏背景图片,本文将介绍其中的最佳实践,并提供具体的代码示例
CSS 列表属性优化技巧:list-style-type 和 list-style-position
在网页设计中,列表是一个常见且重要的元素。通过使用 CSS 列表属性,我们可以对列表的样式和位置进行优化,以提升用户体验。本文将重点介绍两个列表属性:list-style-type 和 list
CSS实现无缝滚动效果的技巧和方法
随着互联网技术的发展,无缝滚动效果在网页设计中被广泛应用。它可以给用户带来更好的浏览体验,也能增加网页的动感和视觉效果。在本文中,我将介绍几种常用的CSS实现无缝滚动效
利用CSS实现鼠标悬停时的弹出特效的技巧和方法
在网页的设计中,常常会遇到鼠标悬停时需要弹出特效的需求,这一特效能够提升用户体验和页面交互性。本文将介绍利用CSS实现鼠标悬停时的弹出特效的技巧和方法,并提供具体的代码
CSS 3D 变换属性:transform 和 perspective
CSS 3D 变换属性是一种强大的技术,可以通过一些简单的代码实现令人惊叹的视觉效果。其中,最常用的两个属性是 transform 和 perspective。一、transform 属性transform 属性用
如何使用CSS制作旋转动画的实现步骤
在现代网页设计中,动画效果是非常重要和受欢迎的一个元素。其中,旋转动画可以给网页注入活力和吸引力。本文将介绍如何使用CSS制作旋转动画的具体步骤,并提供一些代码示例。步
CSS 变形属性优化技巧:transform 和 transition
引言:
随着Web前端技术的不断发展,CSS的应用变得愈发广泛,其中包括对元素的变形和动画效果的实现。CSS的transform和transition属性提供了一种简便有效的方式来实现元素的变形
CSS 字间距属性指南:letter-spacing 和 word-spacing
CSS (层叠样式表)是一种用于描述网页上元素外观和样式的标记语言。在CSS中,有一些属性可以帮助我们调整字间距,使文本更易于阅读和美观。本文将详细介绍两个常用的字间距属性:let
CSS 选择器属性进阶:伪类和伪元素
引言:
在CSS中,选择器是一个重要的概念,它能够帮助开发者准确地选择DOM元素并应用样式。除了常见的元素选择器(如标签选择器和类选择器)之外,CSS还提供了伪类和伪元素这两个选择器
CSS布局指南:实现网格布局的最佳实践
引言:
在现代网页设计中,网格布局已经成为一种非常流行的布局方式。它可以帮助我们更好地组织页面结构,使其更具有层次感和可读性。本篇文章将介绍网格布局的最佳实践,以及具体