<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<style>
.flex {
display: flex;
}
.flex-row {
display: flex;
align-items: center;
}
body {
padding: 0;
margin: 0;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}
div {
box-sizing: border-box;
}
.dialog {
width: 811px;
background-image: linear-gradient(-225deg, #9EFBD3 0%, #57E9F2 48%, #45D4FB 100%);
border-radius: 4px;
padding: 30px 40px 57px;
}
.mySetting #areaDialog .tab_switch {
margin-top: 20px;
}
.mySetting #areaDialog .tab_switch p {
width: 80px;
font-size: 16px;
color: #333333;
margin-right: 60px;
font-weight: 600;
user-select: none;
}
.mySetting #areaDialog .tab_switch .active {
position: relative;
}
.mySetting #areaDialog .tab_switch .active::after {
content: '';
width: 62px;
height: 4px;
background: #00557f;
border-radius: 90px;
position: absolute;
left: 50%;
margin-left: -31px;
bottom: -6px;
}
.mySetting #areaDialog .list_content {
width: 100%;
height: 398px;
background: #fff;
margin: 20px 0;
overflow: hidden;
overflow-y: scroll;
scrollbar-width: none;
padding: 30px 30px 48px;
border-radius: 20px;
}
.mySetting #areaDialog .list_content::-webkit-scrollbar {
width: 5px;
height: 5px;
}
.mySetting #areaDialog .list_content::-webkit-scrollbar-track {
background: #ecdeff;
border-radius: 2px;
}
.mySetting #areaDialog .list_content::-webkit-scrollbar-thumb {
background: #d2eaff;
border-radius: 10px;
}
.mySetting #areaDialog .list_content .list {
flex-wrap: wrap;
}
.mySetting #areaDialog .list_content .list p {
width: 129px;
padding: 0 5px;
height: 57px;
border: 1px solid #D4D4D4;
font-size: 15px;
color: #707070;
margin-right: 30px;
text-align: center;
user-select: none;
margin-bottom: 30px;
border-radius: 4px;
display: flex;
align-items: center;
justify-content: center;
}
.mySetting #areaDialog .list_content .list p:nth-child(4n+4) {
margin-right: 0;
}
.mySetting #areaDialog .list_content .list .pro_active {
position: relative;
border: 1px solid #45D4FB;
}
.mySetting #areaDialog .list_content .list .pro_active::after {
position: absolute;
content: '';
width: 40px;
height: 42px;
background: url(img/角标选中.png);
background-size: 100% 100%;
top: 21px;
right: -5px;
}
</style>
<body>
<section class="mySetting">
<div class="dialog" id="areaDialog">
<div class="flex-row j_b a_title">
<p>更换所在地区</p>
</div>
<div class="flex-row tab_switch">
<p class="active">请选择省份</p>
<p>请选择城市</p>
</div>
<div class="list_content">
<div class="list flex" id="provinceList"></div>
<div class="list flex" id="cityList"></div>
</div>
</div>
</section>
</body>
<script src="js/area.js" type="text/javascript"></script>
<script src="../商品详情/js/jq.js"></script>
<script>
var province = '',
city = '',
cityItem = '';
// 省列表
function renderP() {
var content = "";
provinceList.forEach((item, index) => {
content += '<p data-name=' + item.name + ' data-index=' + index + '>' + item.name +
'</p> '
})
document.getElementById("provinceList").innerHTML = content;
// 选择省
var items = document.getElementById("provinceList").getElementsByTagName("p");
var length = items.length;
for (var i = 0; i < length; i++) {
items[i].onclick = function() {
for (var j = 0; j < length; j++) {
items[j].classList.remove('pro_active');
};
this.classList.add('pro_active');
province = this.dataset.name;
cityItem = this.dataset.index;
}
};
}
renderP();
// 城市列表
function renderCity() {
var content = "";
provinceList[cityItem].cityList.forEach((item, index) => {
content += '<p data-name=' + item.name + ' data-index=' + index + '>' + item.name + '</p> '
})
document.getElementById("cityList").innerHTML = content;
// 选择城市
var items = document.getElementById("cityList").getElementsByTagName("p");
var length = items.length;
for (var i = 0; i < length; i++) {
items[i].onclick = function() {
for (var j = 0; j < length; j++) {
items[j].classList.remove('pro_active');
};
this.classList.add('pro_active');
city = this.dataset.name;
}
};
}
var items = document.getElementsByClassName('tab_switch')[0].getElementsByTagName('p');
// 切换地区选择
for (var i in items) {
items[i].index = i;
items[i].onclick = function() {
if (this.index == 0) {
document.getElementById('provinceList').style.display = 'flex';
document.getElementById('cityList').style.display = 'none';
} else {
if (province == '' || province == undefined || province == null) {
return false;
}
document.getElementById('provinceList').style.display = 'none';
document.getElementById('cityList').style.display = 'flex';
renderCity();
}
for (var j = 0; j < items.length; j++) {
items[j].classList.remove('active');
};
this.classList.add('active');
}
}
// jq写法
// function renderP() {
// $.each(provinceList, function(n, item) {
// content = '<p data-name=' + item.name + ' data-index=' + n + '>' + item.name + '</p> '
// $("#provinceList").append(content);
// })
// // 选择省
// $('#provinceList p').click(function() {
// $(this).addClass("pro_active").siblings().removeClass("pro_active");
// province = $(this).attr('data-name')
// cityItem = $(this).attr('data-index')
// });
// }
// renderP();
// // 城市列表
// function renderCity() {
// $.each(provinceList[cityItem].cityList, function(n, item) {
// content = '<p data-name=' + item.name + '>' + item.name + '</p> '
// $("#cityList").append(content);
// })
// // 选择城市
// $('#cityList p').click(function() {
// $(this).addClass("pro_active").siblings().removeClass("pro_active");
// city = $(this).attr('data-name');
// });
// }
// // 切换地区选择
// $('#areaDialog .tab_switch p').click(function() {
// if ($(this).index() == 0) {
// // renderP();
// $("#provinceList").fadeIn(300)
// $("#cityList").fadeOut(100)
// } else {
// if (province == '' || province == undefined || province == null) {
// return false;
// }
// // 清空数据重新渲染
// $("#cityList").empty()
// renderCity();
// $("#provinceList").fadeOut(100)
// $("#cityList").fadeIn(300)
// }
// $(this).addClass("active").siblings().removeClass("active");
// });
</script>
</html>
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
前端动画素材在网页开发中扮演着重要角色,能够吸引用户注意、提升用户体验。以下是一些常见的前端动画素材的技术实现方式: CSS 动画:使用 CSS 属性(如@keyframes、transition、transform等)来实现动画效果。这种方式简单易用,适合实现简单的动画效果,如过渡、旋转、缩放等。 JavaScript 动画:通过 JavaScript 操作 DOM 元素的样式属性,实现更复杂、交互性更强的动画效果。常见的库包括 jQuery、Anime.js、GreenSock(GSAP)等,它们提供了丰富的动画函数和效果,使动画开发更加高效。 SVG 动画:使用 SVG(可缩放矢量图形)和 SMIL(同步多媒体集成语言)技术创建矢量图形动画,可以实现复杂的矢量图形动画效果,如路径动画、填充动画等。 Canvas 动画:通过 HTML5 Canvas 元素绘制图形,利用 JavaScript 控制绘制过程,实现高度可定制化的动画效果,适用于需要实时渲染的复杂动画场景。 WebGL 动画:基于 WebGL(Web图形库)的 3D 图形渲染技术,可以实现高性能的复杂动画效果,适合开发需要展示 3D 动画的网页。 React 动画库:如果你在使用 React 框架,可以考虑使用像 React Spring、Framer Motion 等专门为 React 设计的动画库,简化动画开发流程。 CSS 预处理器:使用像 Sass、Less 等 CSS 预处理器可以简化 CSS 编写过程,提高样式代码的可维护性,进而对动画效果的实现有所帮助。 综上所述,前端动画素材的技术实现方式多种多样,开发者可以根据项目需求和个人技术偏好选择合适的方式来实现动画效果。
资源推荐
资源详情
资源评论
收起资源包目录
【前端素材】模板-多种实用城市选择器.zip (3个子文件)
城市选择器
js
area.js 67KB
img
角标选中.png 2KB
index.html 7KB
共 3 条
- 1
资源评论
枫蜜柚子茶
- 粉丝: 6242
- 资源: 4607
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功