用JS代码怎样写一个qq资料卡的效果,思路和方法是什么
Admin 2022-09-20 群英技术资讯 970 次浏览
今天这篇我们来学习和了解“用JS代码怎样写一个qq资料卡的效果,思路和方法是什么”,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“用JS代码怎样写一个qq资料卡的效果,思路和方法是什么”有一定的帮助。有这方面学习需要的朋友就继续往下看吧!不多逼逼直接上干货

首先我们先这样,然后那样,再然后这样,最后再那样,好,完成了,请看效果图:

正经点,我们重新开始
首先我们先参考一下QQ原生资料卡

这个资料卡乍一看好像其实并没有觉得很复杂,但是如果往细了看(多细?比吴签还细吗?)
…
只能弱弱的说一句:卧槽,真复杂啊,我们把圈起来的搞出来就行了吧,偷个小懒,哈哈哈
先聊聊思路:任何前端页面都是由一个个小模块拼接组成的,我们先将它们的每一个模块划分出来,在添加上对应得描述,超链接和文字即可
模块化:将整个主页模块化
我们就像拼拼图一样,先做好每一个小区域,然后将他们品“拼起来就行了“
如下图:

首先看圈出来的东西,我们可以把这个页面分为图标,按钮和文字三个部分,包含各类样式; 图标:让我们的鼠标点到它,给出一个“反应”
按钮则是包含相关内容的一个盒子,加上对应内容的超链接即可,并且有选中和未选中的两种不同状态:
文字:直接代码中添加,然后确定位置即可
话不多说,上代码:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>欢迎来到小新的个人主页</title>
<link rel="stylesheet" href="css/style.css" rel="external nofollow" >
<link rel="icon" href="index_1.html" rel="external nofollow" >
<audio src="etc/qfl.mp3" id="audio"></audio>
</head>
<body>
<div class="container">
<div class="user-form">
<div class="bg-user">
<div class="top"><img src="images/riluo.jpg"></div>
<div class="circle"><img src="http://q1.qlogo.cn/g?b=qq&nk=2085324623&s=640"></div>
<p class="user-title">   五月</p>
<p class="user-qq">QQ: 2085324623</p>
<div class="idcard"><img src="images/svip.png"></div>
<div class="zan"><img src="images/zan.png"></div>
<p class="sign-text"><img src="images/person.jpeg"> 男 | 金牛座 | 中国 </p>
<p class="sign-text"><img src="images/sign.jpeg"><a href="https://blog.csdn.net/m0_68089732" rel="external nofollow" >#将温柔寄予信~</a></p>
<p class="sign-text"><img src="images/qzone.jpeg"><a href="https://mp.qzone.qq.com/u/327893?uin=2085324623&is_famous_space=0&brand_flag=0" rel="external nofollow" > Ta的空间</a></p>
<p class="sign-text"><img src="images/camera.jpeg"> 精选照片</p>
<div class="border-img"><img src="images/012.gif"></div>
<button class="btn-blue" onclick="window.open('tencent://message/?uin=2085324623&Menu=yes')">添加好友</button>
<button class="btn-music" id="music">音乐设置</button>
</div>
</div>
</div>
<script src="js/jquery-1.11.0.min.js"></script>
<script src="js/sweetalert.min.js"> </script>
<script src="js/main.js"></script>
</body>
</html>
*{
padding: 0px;
margin:0px;
font-family: "Arial","Microsoft YaHei","黑体","宋体",sans-serif;
}
body::before{
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: linear-gradient(125deg,#c5e6e8,#ced396,#a1c4fd,#a8edea,#d299c2);
/*background: transparent url('../img/bg.jpg') no-repeat fixed;*/
/*filter: blur(8px);*/
background-size: cover;
z-index: -1;
}
.container{
position: absolute;
transform: translate(-50%,-50%);
left: 50%;
top:50%;
}
.btn-blue{
display: block;
width:100%;
height: 40px;
margin-top:10px;
background-color: #a1c4fd;
border:2px solid #a1c4fd;
border-color: #a1c4fd;
border-radius: 5px 5px 5px 5px;
outline: none;
color:#fff;
transition: 0.3s;
transform: translateZ(0);
}
.btn-blue:hover{
transform: scale(1.01);
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
}
/**************************/
.bg-user{
width: 300px;
padding: 20px;
background-color: #fff;
border-radius: 15px;
transition: 0.3s;
}
.circle > img{
border:0px solid #fff;
height:80px;
width: 80px;
border-radius: 50%;
margin-top: -50px;
}
@keyframes rotation{
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.circle > img:hover{
animation: rotation 3s linear infinite;
}
.user-title{
position: relative;
display: inline;
float: right;
margin-top: -65px;
margin-right: 160px;
color:#ffffff;
font-size: 15px;
font-weight: 500;
}
.user-qq{
display: inline;
float: right;
margin-top: -30px;
margin-right: 100px;
font-size:15px;
font-weight: 300;
}
.top{
margin-top: -10px;
margin-left: -10px;
margin-right: -10px;
}
.top > img{
width: 100%;
height: 200px;
border:0px solid #fff;
border-radius: 15px;
}
.idcard{
float: right;
margin-top: -30px;
margin-right: 45px;
}
.idcard > img{
width: 40px;
height: 13px;
}
.zan{
position: relative;
display: inline;
float: right;
margin-top: -75px;
margin-right: -30px;
transition: 0.5s;
}
.zan:hover{
transform: scale(1.05);
transform:rotate(10deg);
-ms-transform:rotate(10deg); /* IE 9 */
-moz-transform:rotate(10deg); /* Firefox */
-webkit-transform:rotate(10deg); /* Safari 和 Chrome */
-o-transform:rotate(10deg);
}
.zan > img{
height: 40%;
width: 50%;
}
.sign-text{
text-align: left;
font-size: .85rem;
margin-top: 10px;
cursor: default;
}
.sign-text:hover{
transition: 0.3s;
color: #007bff;
transform: scale(1.05);
}
a{
text-decoration:none;
color: inherit;
}
.sign-text>img{
width:20px;
height:20px;
vertical-align:middle;
}
.sign-img{
text-align: left;
font-size: .85rem;
margin-top: 10px;
cursor: default;
}
.sign-img:hover{
transition: 0.3s;
color: #007bff;
transform: scale(1.05);
}
.border-img > img{
width: 100%;
margin-top: 10px;
border: 2px solid rgba(0,0,0,0.2);
border-radius: 15px;
transition: 0.3s;
}
.whj{
float:right;
}
.border-img > img:hover{
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
}
.btn-music{
display: block;
width:100%;
height: 40px;
margin-top:10px;
background-color: #fecfef;
border:2px solid #fecfef;
border-color: #fecfef;
border-radius: 5px 5px 5px 5px;
outline: none;
color:#fff;
transition: 0.3s;
}
.btn-music:hover{
transform: scale(1.01);
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
}
这里突发奇想想添加个,能穿越时空的音乐——带你回到18年的夏天,还附赠了一个视频,转载自b站,所以外加了个JS,最后连接到HTML即可。
function playMusic() {
var audioEle = document.getElementById("audio");
if (audioEle.paused){
audioEle.play();
}else {
audioEle.pause();
}
}
$("#music").click(function(){
play();
});
var player = document.getElementById("audio");
play();
function play(){
swal("点击开启音乐-起风了\n可以边浏览边听哦~", {
buttons: {
cancel: "开启",
allow: "关闭"
}
}).then(function(value) {
if (value == "allow") {
player.pause()
} else {
player.play();
}
});
}

知识点补充
window.open('tencent://message/?uin=2085324623&Menu=yes')"
添加自己的QQ号,点击对应按钮,即可打开QQ,跳转添加好友页面
"https://mp.qzone.qq.com/u/327893?uin=2085324623&is_famous_space=0&brand_flag=0"
唤醒QQ ,跳转个人QQ空间
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
现在很多商家、组织、单位等等都有自己的微信小程序,我们能方便快捷的在小程序商实现自己想要的服务,其中有一些服务需要我们个人签名,那么微信小程序上的电子签名功能是怎样实现的呢?接下来小编就带大家来了解一下。
在实际的应用中,我们常常有刷新当前页面的需求,因此这篇文章就给大家分享使用Vue刷新当前页面的方法,下文有详细的代码可以参考,感兴趣的朋友就继续往下看吧。
本篇文章带大家了解一下Node.js模块中的events模块,介绍一下什么是事件驱动、NodeJS的事件架构、Events模块核心API等,希望对大家有所帮助!
vue清除定时器的方法是什么?一些朋友可能不知道为什么要清楚定时器,这是因为定时器如果不及时合理地清除,会造成业务逻辑混乱甚至应用卡死的情况,因此这篇文章就给大家分享关于vue清除定时器的方法及要注意的问题。
方法:1、利用“$(li元素)”语句匹配li对象;2、利用“:eq()”选择器选取指定的li节点,语法“li对象.eq(位置值)”;3、利用attr()方法为指定li节点添加属性,语法“li节点.attr(“新属性名”,“新属性值”)”。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008