小言_互联网的博客

购书网站前端实现(HTML+CSS+JavaScript)

767人阅读  评论(0)

目录

购书+阅读静态网页设计与实现

一、主页设计HTML

1、效果展示及实现

2、完整代码

二、主页样式布局CSS

三、空间功能实现Javascript

主要功能

Javascript完整代码:

总结


购书+阅读静态网页设计与实现

项目完整代码已打包在CSDN:MyBookWeb,需要可以下载。也可联系我获取。

主要功能以及元素应用:

1、实现购书网站的基本页面,包括主页、书籍分类栏、登录界面、自动显示浏览时间图片轮播切换等功能。

2、使用的网页元素包括div分块、form表单、ul列表、img插入图片等,各类id、class标签;

3、CSS样式有color、font、边框、背景属性、尺寸(width、height)、内外边距属性(padding、margin)、定位(position、display、float、z-index)、文本、过渡transition,这些样式综合使用,对html页面进行布局设计。

4、Javascript功能:实现图片轮播切换、点击切换、表单登录验证、用户浏览网站时长计算、鼠标事件、加载提示等。

整个网页设计分为html、css、javascript三部分,相对独立分离又在最后结合一起。接下来将以此三个部分进行介绍。

一、主页设计HTML

首先,我大致构建出自己目标的网页草图,画出实现主要部分以及相对位置;然后开始编写html的代码,主要对一个独立功能的块用div包括,为后面css样式所用。

html代码划分为2大部分:头部top和内容content;最重要的content里面也分为小的部分,包括首页main、网站goal和登录界面login。

注:下面为了展示html页面各部分的完成效果,css样式布局已经规划好。可结合下部分CSS查看。

1、效果展示及实现

1、网页顶部栏展示:

实现代码:


  
  1. <div class="top">
  2. <div class="logo"> <a href="Read_Me.html">Read Me </a> </div>
  3. <div class="wel">阅读我,给你畅游书海的乐趣! <br>
  4. 等待你的到来! </div>
  5. <div id="time">
  6. <form name="record" method="post" action="">
  7. 浏览时长:
  8. <input name="area" type="text" value="">
  9. </form>
  10. </div>
  11. <div class="detail">
  12. <ul>
  13. <li> <a href="#">语言 <span class="icon"> </span> </a>
  14. <ul>
  15. <li> <a href="#">中国站:简体中文 </a> </li>
  16. <li> <a href="#">国际站:English </a> </li>
  17. </ul>
  18. </li>
  19. <li> <a href="#">我的 <span class="icon"> </span> </a>
  20. <ul class="list2">
  21. <li> <a href="#">账户信息 </a> </li>
  22. <li> <a href="#">设置 </a> </li>
  23. </ul>
  24. </li>
  25. <li> <a href="#">我的云书房 </a> </li>
  26. <li> <a href="#">我的购物车 </a> </li>
  27. </ul>
  28. <div class="clear"> </div>
  29. </div>
  30. </div>
  31. <!--top-->

 2、首页顶端目录栏及侧边栏

顶端栏目设置了二级目录,鼠标hover时候可以展示

代码:


  
  1. <div id="nav">
  2. <div id="mulu">
  3. <ul>
  4. <li> <a href="#nav">首页 </a> </li>
  5. <li> <a href="#goal">Read Me动态 </a> </li>
  6. <li> <a href="#" onClick="f1()">藏书阁 </a> </li>
  7. <li> <a href="#">网站导航 <span class="icon"> </span> </a>
  8. <ul class="list1">
  9. <li> <a href="#">资源中心 </a> </li>
  10. <li> <a href="#">帮助 </a> </li>
  11. <li> <a href="#">关于我们 </a> </li>
  12. </ul>
  13. </li>
  14. <li> <a href="#">最新活动 </a> </li>
  15. <li> <a href="#login_page">登录 </a> </li>
  16. </ul>
  17. </div> <!--mulu-->
  18. </div>
  19. <div id="sort">
  20. <ul id="book1">
  21. <li class="f"> <a href="#">经典 </a> </li>
  22. <li class="s"> <a href="#">科技 </a> </li>
  23. <li class="t"> <a href="#">教育 </a> </li>
  24. <li class="f1"> <a href="#">生活 </a> </li>
  25. <li class="f2"> <a href="#">艺术 </a> </li>
  26. <li class="s"> <a href="#">电子书 </a> </li>
  27. <li class="s1"> <a href="#">听书 </a> </li>
  28. </ul>
  29. </div>

3、搜索框及图片轮播

 

 

代码实现: 


  
  1. <!--sort-->
  2. <div id="search">
  3. <form id="form">
  4. <input class="in1" name="search" type="text" placeholder="请输入您要搜索的关键字">
  5. <button onclick="f2()">搜索 </button>
  6. <!--input class="ou1" type="submit" name="send" value="搜索"-->
  7. </form>
  8. <a href="#">智能推荐 </a>
  9. </div> <!--search-->
  10. <div id="tu">
  11. <div class="c-banner">
  12. <div class="banner">
  13. <ul>
  14. <li> <img src="images/book1.jpg" width="1000"> </li>
  15. <li> <img src="images/lunbo1.jpg" > </li>
  16. <li> <img src="images/book2.jpg" > </li>
  17. <li> <img src="images/lunbo2.jpg"> </li>
  18. <li> <img src="images/shan.png"> </li>
  19. <li> <img src="images/book3.jpg" > </li>
  20. </ul>
  21. </div>
  22. <!--banner-->
  23. <div class="nexImg"> <img src="images/nexImg.png" /> </div>
  24. <div class="preImg"> <img src="images/preImg.png" /> </div>
  25. <div class="jumpBtn">
  26. <ul>
  27. <li jumpImg="0"> </li>
  28. <li jumpImg="1"> </li>
  29. <li jumpImg="2"> </li>
  30. <li jumpImg="3"> </li>
  31. <li jumpImg="4"> </li>
  32. <li jumpImg="5"> </li>
  33. </ul>
  34. </div> <!--jumpBtn-->
  35. </div> <!--c-banner-->
  36. </div> <!--tu-->

4、简单的介绍页面 

5、表单页面


  
  1. <div id="login_page">
  2. <div class="login1">
  3. <form action="#" method="post">
  4. <input type="text" name="name" class="name" placeholder="Usename" required>
  5. <input type="password" name="password" class="password" placeholder="Password" required>
  6. <div class="wthree-text">
  7. <ul>
  8. <li>
  9. <label class="anim">
  10. <input type="checkbox" class="checkbox" required>
  11. <span>七天内自动登录 </span> </label>
  12. </li>
  13. <li> <a href="#">忘记密码? </a> </li>
  14. </ul>
  15. </div>
  16. <div class="clear"> </div>
  17. <input type="submit" value="Login" onclick="check()">
  18. </form>
  19. <p> <a href="#">创建账号? </a> </p>
  20. </div>
  21. </div> <!--login_page-->

2、完整代码


  
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Read Me 图书网 </title>
  6. <script type="text/javascript" src="js/jquery-3.5.1.min.js"> </script>
  7. <script type="text/javascript" src="js/Readme.js"> </script>
  8. <link rel="stylesheet" type="text/css" href="mystyle.css">
  9. </head>
  10. <body>
  11. <div class="top">
  12. <div class="logo"> <a href="Read_Me.html">Read Me </a> </div>
  13. <div class="wel">阅读我,给你畅游书海的乐趣! <br>
  14. 等待你的到来! </div>
  15. <div id="time">
  16. <form name="record" method="post" action="">
  17. 浏览时长:
  18. <input name="area" type="text" value="">
  19. </form>
  20. </div>
  21. <div class="detail">
  22. <ul>
  23. <li> <a href="#">语言 <span class="icon"> </span> </a>
  24. <ul>
  25. <li> <a href="#">中国站:简体中文 </a> </li>
  26. <li> <a href="#">国际站:English </a> </li>
  27. </ul>
  28. </li>
  29. <li> <a href="#">我的 <span class="icon"> </span> </a>
  30. <ul class="list2">
  31. <li> <a href="#">账户信息 </a> </li>
  32. <li> <a href="#">设置 </a> </li>
  33. </ul>
  34. </li>
  35. <li> <a href="#">我的云书房 </a> </li>
  36. <li> <a href="#">我的购物车 </a> </li>
  37. </ul>
  38. <div class="clear"> </div>
  39. </div>
  40. </div>
  41. <!--top-->
  42. <div id="nav">
  43. <div id="mulu">
  44. <ul>
  45. <li> <a href="#nav">首页 </a> </li>
  46. <li> <a href="#goal">Read Me动态 </a> </li>
  47. <li> <a href="#" onClick="f1()">藏书阁 </a> </li>
  48. <li> <a href="#">网站导航 <span class="icon"> </span> </a>
  49. <ul class="list1">
  50. <li> <a href="#">资源中心 </a> </li>
  51. <li> <a href="#">帮助 </a> </li>
  52. <li> <a href="#">关于我们 </a> </li>
  53. </ul>
  54. </li>
  55. <li> <a href="#">最新活动 </a> </li>
  56. <li> <a href="#login_page">登录 </a> </li>
  57. </ul>
  58. </div> <!--mulu-->
  59. </div>
  60. <div class="content">
  61. <div id="main">
  62. <div id="sort">
  63. <ul id="book1">
  64. <li class="f"> <a href="#">经典 </a> </li>
  65. <li class="s"> <a href="#">科技 </a> </li>
  66. <li class="t"> <a href="#">教育 </a> </li>
  67. <li class="f1"> <a href="#">生活 </a> </li>
  68. <li class="f2"> <a href="#">艺术 </a> </li>
  69. <li class="s"> <a href="#">电子书 </a> </li>
  70. <li class="s1"> <a href="#">听书 </a> </li>
  71. </ul>
  72. </div>
  73. <!--sort-->
  74. <div id="search">
  75. <form id="form">
  76. <input class="in1" name="search" type="text" placeholder="请输入您要搜索的关键字">
  77. <button onclick="f2()">搜索 </button>
  78. <!--input class="ou1" type="submit" name="send" value="搜索"-->
  79. </form>
  80. <a href="#">智能推荐 </a>
  81. </div> <!--search-->
  82. <div id="tu">
  83. <div class="c-banner">
  84. <div class="banner">
  85. <ul>
  86. <li> <img src="images/book1.jpg" width="1000"> </li>
  87. <li> <img src="images/lunbo1.jpg" > </li>
  88. <li> <img src="images/book2.jpg" > </li>
  89. <li> <img src="images/lunbo2.jpg"> </li>
  90. <li> <img src="images/shan.png"> </li>
  91. <li> <img src="images/book3.jpg" > </li>
  92. </ul>
  93. </div>
  94. <!--banner-->
  95. <div class="nexImg"> <img src="images/nexImg.png" /> </div>
  96. <div class="preImg"> <img src="images/preImg.png" /> </div>
  97. <div class="jumpBtn">
  98. <ul>
  99. <li jumpImg="0"> </li>
  100. <li jumpImg="1"> </li>
  101. <li jumpImg="2"> </li>
  102. <li jumpImg="3"> </li>
  103. <li jumpImg="4"> </li>
  104. <li jumpImg="5"> </li>
  105. </ul>
  106. </div> <!--jumpBtn-->
  107. </div> <!--c-banner-->
  108. </div> <!--tu-->
  109. <div id="dontai">
  110. <ul class="share">
  111. <li> <a href="#" class="note">读者之窗 <span>来看看读者最近在读写什么吧! </span> </a> </li>
  112. <li> <a href="#" class="note">书评专栏 <span>这里是优美的书评,让人流连忘返! </span> </a> </li>
  113. <li> <a href="#" class="note">我要投稿 <span>投稿有奖,发挥你的智慧时候到了! </span> </a> </li>
  114. </ul>
  115. </div>
  116. </div> <!--main-->
  117. <div id="goal">
  118. <h2>我们的宗旨 </h2>
  119. <div class="line green"> <span> </span> </div>
  120. <h4>致力于创新的图书网站,让阅读更加高效有趣,打造影响世界的品牌 </h4>
  121. <div class="services_grids">
  122. <div class="grid_1_of_4 services_1_of_4"> <img src="images/flag.png" id="t1" alt="品牌" />
  123. <h3>品牌化 </h3>
  124. <p>赋予产品和服务与众不同的特点,准确市场定位,创造自己! </p>
  125. </div>
  126. <div class="grid_1_of_4 services_1_of_4"> <img src="images/design.png" id="t2" alt="设计" />
  127. <h3>行动派 </h3>
  128. <p>社会在发展,我在行动,跟随时代不断进步,充分承担起责任。 </p>
  129. </div>
  130. <div class="grid_1_of_4 services_1_of_4"> <img src="images/development.png" id="t3" alt="创新" />
  131. <h3>创新发展 </h3>
  132. <p>坚持以观念创新为先导、战略创新为方向、组织创新为保障、技术创新为手段! </p>
  133. </div>
  134. <div class="grid_1_of_4 services_1_of_4"> <img src="images/rocket.png" id="t4" alt="高效" />
  135. <h3>高效执行 </h3>
  136. <p>打造高效执行的团队,保持团队竞争力! </p>
  137. </div>
  138. </div>
  139. </div> <!--goal-->
  140. <div id="login">
  141. <div id="login_page">
  142. <div class="login1">
  143. <form action="#" method="post">
  144. <input type="text" name="name" class="name" placeholder="Usename" required>
  145. <input type="password" name="password" class="password" placeholder="Password" required>
  146. <div class="wthree-text">
  147. <ul>
  148. <li>
  149. <label class="anim">
  150. <input type="checkbox" class="checkbox" required>
  151. <span>七天内自动登录 </span> </label>
  152. </li>
  153. <li> <a href="#">忘记密码? </a> </li>
  154. </ul>
  155. </div>
  156. <div class="clear"> </div>
  157. <input type="submit" value="Login" onclick="check()">
  158. </form>
  159. <p> <a href="#">创建账号? </a> </p>
  160. </div>
  161. </div> <!--login_page-->
  162. <div id="right"> <span>© 2020 CZH. All rights Reserved </span> </div> <!--rightt-->
  163. </div> <!--login-->
  164. </div> <!--content-->
  165. </body>
  166. </html>

二、主页样式布局CSS

CSS样式在整个网页设计需要花费一定时间,因为需要不断调整页面的布局,将元素组件放于比较合理位置,设置颜色,让用户有良好的视觉效果。根据平时浏览一些网页的经验设计整个网页的合理效果。在CSS文件mystyle.css中,各部分有详细解析用法,这里就不细讲。


  
  1. @charset "utf-8";
  2. /* CSS Document */
  3. *{
  4. margin: 0;
  5. padding: 0;
  6. /* width: 1000px;*/
  7. }
  8. ul, ol, li{
  9. list-style:none;
  10. font-family: "微软雅黑"
  11. }
  12. .logo a{
  13. font-family: "Times New Roman", Times, serif;
  14. font-size: 50px;
  15. font-weight:bold;
  16. font-style:italic;
  17. text-decoration:none;
  18. color: #03F;
  19. float:left;
  20. }
  21. .top{
  22. height: 60px;
  23. background: url(images/pattern.gif) repeat;
  24. display:block;
  25. /*float:bottom;*/
  26. }
  27. .wel{
  28. color: #000;
  29. text-align:left;
  30. font-size: 20px;
  31. font-family: "宋体", "楷体", "微软雅黑";
  32. font-weight:bold;
  33. float:left
  34. }
  35. #time{
  36. position:relative;
  37. top: 20px;
  38. right: - 160px;
  39. font-family: "宋体";
  40. }
  41. #time form input{
  42. height: 25px;
  43. width: 100px;
  44. color: #F00;
  45. font-family: "宋体";
  46. }
  47. .detail{
  48. display:inline-block; /*top右边信息栏为行内块,不影响下边内容显示*/
  49. }
  50. .detail a{
  51. text-decoration:none;
  52. color: #666
  53. }
  54. .detail ul li{
  55. float:left;
  56. width: 90px;
  57. position:relative; /*设置信息栏在top相对位置*/
  58. left: 480px;
  59. top:- 10px;
  60. margin-left: 50px;
  61. margin-top: 15px;
  62. text-align:center;
  63. font-family: "楷体";
  64. font-size: 18px
  65. }
  66. .detail ul li ul li{
  67. display:none; /*二级目录隐藏*/
  68. width: 150px;
  69. float:none;
  70. }
  71. .detail ul li :hover ul li{
  72. display:block; /*鼠标停留在一级时二级显示*/
  73. position:relative;
  74. left:- 85px;
  75. background-color: #FFf;
  76. }
  77. #book1 a :hover, .detail ul li a :hover, .detail ul li ul li a :hover{
  78. color: #03F;
  79. }
  80. #nav a{
  81. text-decoration:none;
  82. color: #fff;
  83. }
  84. #nav{
  85. margin: 0;
  86. padding: 0;
  87. background: url(images/fancybox_overlay.png) repeat; /*主菜单背景图,设置高宽以及间距,为块元素*/
  88. height: 50px;
  89. /*width:1519px;float:none;
  90. display:block;*/
  91. }
  92. #mulu{
  93. display:inline-block; /*主菜单目录为行内块,保证元素显示位置,主要影响二级菜单显示效果*/
  94. }
  95. #mulu ul li{
  96. width: 200px; /*文字显示宽度*/
  97. text-align:center;
  98. line-height: 50px;
  99. display:block;
  100. float:left;
  101. margin-left: 50px; /*每个标题左间隔*/
  102. }
  103. #mulu ul li ul li{
  104. width: 100px;
  105. float:none; /*二级菜单分行显示*/
  106. display:none;
  107. background-color: #666;
  108. }
  109. #mulu ul li :hover ul li{
  110. display:inline-block;
  111. position:relative;
  112. left:- 24px;
  113. z-index: 2; /*保证显示上层,下面div在下层*/
  114. }
  115. /*#mulu ul li ul li ul{三级菜单分行显示
  116. float:left;
  117. display:none;
  118. position:relative;
  119. right:150px;
  120. bottom:50px;
  121. }
  122. #mulu ul li ul li:hover ul{
  123. display:block;
  124. }
  125. */
  126. #mulu ul li a :hover, #mulu ul li ul li a :hover{
  127. color: #F00
  128. }
  129. .icon{
  130. display: inline-block;
  131. vertical-align: middle;
  132. width: 0px;
  133. height: 0px;
  134. border: 5px solid transparent;
  135. border-top-color: #000 /*top箭头向下 bottom箭头向上*/
  136. }
  137. #main{
  138. display:block;
  139. height: 620px;
  140. width: 1519px;
  141. /*position:relative;
  142. top:-50px;*/
  143. background: url(images/avatars/intro-bg.jpg) no-repeat /*主页背景图*/
  144. }
  145. #sort{
  146. float:left; /*分类栏布局在左*/
  147. height: 620px;
  148. background: url(images/fancybox_overlay.png) repeat;
  149. }
  150. #book1 li{
  151. display:block; /*书籍类别块*/
  152. float:top; /**/
  153. padding: 10px; /*相互间间距*/
  154. margin: 40px;
  155. width: 100px;
  156. /*background-color:#0FF;*/
  157. text-align:center;
  158. }
  159. #book1 a{
  160. color:white;
  161. text-decoration:none
  162. }
  163. #search{
  164. display:inline-block;
  165. position:relative; /*搜索框位置*/
  166. left: 300px;
  167. top: 20px;
  168. }
  169. #search a{
  170. color: #F00;
  171. font-size: 18px;
  172. text-decoration:none;
  173. position:relative;
  174. top: 20px;
  175. left: 20px;
  176. }
  177. #form{
  178. float:left;
  179. border: 3px solid #BD1D17 ; /*表单边框样式*/
  180. width: 700px;
  181. border-radius: 5px
  182. }
  183. #form .in1{
  184. width: 605px; /*input区域*/
  185. height: 50px;
  186. font-size: 18px;
  187. font-family: "宋体"
  188. }
  189. button{
  190. width: 90px;
  191. height: 55px;
  192. float: right;
  193. background-color: #BD1D17;
  194. border:none;
  195. font-size: 18px;
  196. }
  197. button :hover{
  198. cursor:pointer;
  199. }
  200. input ::-webkit-input-placeholder{ /*输入提醒文字样式*/
  201. font-size: 18px;
  202. padding-left: 40px;
  203. padding-top: 40px;
  204. z-index: 1;
  205. font-family: "宋体";
  206. }
  207. input :hover ::-webkit-input-placeholder {
  208. color: #FFF;
  209. -webkit-transition: color. 3s;
  210. }
  211. #tu{
  212. height: 100%;
  213. width: 80%;
  214. overflow:hidden;
  215. bottom:- 50px;
  216. font-size: 0;
  217. /*float:left;*/
  218. position:relative;
  219. left: 100px
  220. }
  221. /*图片轮播切换*/
  222. .c-banner{
  223. width: 90%;
  224. position:relative;
  225. }
  226. .c-banner img{
  227. width: 100%;
  228. }
  229. .c-banner .banner ul{
  230. list-style: none;
  231. padding-left: 0px;
  232. margin-bottom: 0px;
  233. }
  234. .c-banner .banner ul li{ /*各张图片*/
  235. position: absolute;
  236. display: none;
  237. opacity: 0;
  238. }
  239. .c-banner .banner ul li :nth-child(1){
  240. opacity: 1;
  241. display: block;
  242. }
  243. .c-banner .banner ul li img{
  244. width: 100%;
  245. position: absolute;
  246. top: 0px;
  247. }
  248. .c-banner .banner ul li :first-child img{
  249. position: relative;
  250. }
  251. .c-banner .nexImg, .c-banner .preImg{ /*鼠标点击左右切换方向的效果*/
  252. padding: 25px 10px 25px 10px;
  253. position: absolute;
  254. /* top: 80%;*/
  255. margin-top: 180px;
  256. background: #000000;
  257. opacity: 0.5; /*透明度*/
  258. border-radius: 5px; /*圆边框*/
  259. z-index: 10;
  260. }
  261. .c-banner .nexImg :hover, .c-banner .preImg :hover, .c-banner .jumpBtn ul li :hover{
  262. opacity: 0.8;
  263. cursor:pointer;
  264. }
  265. .c-banner .nexImg{
  266. right: 0px;
  267. }
  268. .c-banner .nexImg img, .c-banner .preImg img{
  269. }
  270. .c-banner .jumpBtn{
  271. width: 100%;
  272. position: absolute;
  273. bottom: 20px;
  274. text-align: center;
  275. }
  276. .c-banner .jumpBtn ul{
  277. margin-bottom: 0px;
  278. padding: 0px;
  279. }
  280. .c-banner .jumpBtn ul li{
  281. width: 10px;
  282. height: 10px;
  283. border-radius: 50%;
  284. display: inline-block;
  285. background-color: white;
  286. opacity: 0.5; /*透明度*/
  287. margin-left: 10px;
  288. }
  289. .c-banner .jumpBtn ul li :first-child{
  290. margin-left: 0px;
  291. }
  292. #dontai{
  293. float:right;
  294. display:block;
  295. position:relative;
  296. top:- 260px;
  297. background: url(images/formbg.gif) repeat;
  298. height: 200px;
  299. width: 120px;
  300. }
  301. .share li{
  302. padding: 20px; /*相互间间距
  303. margin:40px;*/
  304. }
  305. .share a{
  306. text-decoration:none;
  307. color: #003;
  308. }
  309. .share a :hover{
  310. color:red;
  311. }
  312. .note span{
  313. display: none;
  314. }
  315. .note :hover span{ /*span 标签仅在 :hover 状态时显示*/
  316. display:block;
  317. float:left;
  318. position:relative;
  319. top: 20px;
  320. left:- 100px;
  321. width: 150px;
  322. border: 1px solid black;
  323. background-color: #0CF;
  324. color:black;
  325. }
  326. #goal{
  327. background: #17c2a4;
  328. padding: 5em 0;
  329. height: 450px;
  330. }
  331. #goal h2{
  332. font-size: 2.2em;
  333. color: #FFF;
  334. text-align:center;
  335. letter-spacing: 10px;
  336. -webkit-text-stroke-width: 2px;
  337. }
  338. #goal h4{
  339. color: #FFF;
  340. font-size: 1.2em;
  341. text-align:center;
  342. width: 50%;
  343. margin: 0 auto;
  344. padding-top: 1em;
  345. }
  346. .line{
  347. text-align:center;
  348. }
  349. .line span{
  350. display:inline-block;
  351. padding: 2px 45px;
  352. vertical-align:middle;
  353. }
  354. .green span{
  355. background: #14a58c;
  356. }
  357. #services_grids{
  358. margin-top: 3em;
  359. }
  360. .grid_1_of_4{
  361. display: block;
  362. float:left;
  363. margin: 1% 0 1% 1.6%;
  364. }
  365. .grid_1_of_4 :first-child {
  366. margin-left: 0;
  367. }
  368. .services_1_of_4 {
  369. width: 20.8%;
  370. padding: 1.5%;
  371. text-align: center;
  372. }
  373. .services_1_of_4 img{
  374. max-width: 100%;
  375. margin: 25px 0;
  376. }
  377. .services_1_of_4 h3{
  378. font-size: 1.4em;
  379. color: #000;
  380. text-align:center;
  381. font-weight: 500;
  382. text-transform:uppercase;
  383. -webkit-text-stroke: 1px;
  384. letter-spacing: 1px;
  385. }
  386. .services_1_of_4 p{
  387. font-size: 1em;
  388. color: #000;
  389. text-align: center;
  390. margin: 0 auto;
  391. padding: 10px 0;
  392. line-height: 1.6em;
  393. }
  394. /*登录界面*/
  395. #login{
  396. height: 800px;
  397. background: #673AB7;
  398. background: -webkit-linear-gradient(to bottom right, # 673AB7 50%, # 6231b9 50%);
  399. background: linear-gradient(to bottom right, # 673AB7 50%, # 6231b9 50%);
  400. background-size:cover;
  401. background-attachment: fixed;
  402. }
  403. #login_page {
  404. width: 35%;
  405. /**/ position:relative;
  406. left: 500px;
  407. top: 150px;
  408. background: rgba( 41, 5, 105, 0.43);
  409. background-size: cover;
  410. }
  411. .login1 {
  412. padding: 0.5em 3em 3em;
  413. }
  414. .login1 a{
  415. text-decoration:none;
  416. }
  417. .login1 input [type="text"], input [type="password"]{
  418. font-size: 1em;
  419. color: #fff;
  420. font-weight: 100;
  421. margin: 3em 0 0;
  422. width: 93%;
  423. display: block;
  424. border: none;
  425. padding: 1em;
  426. border-bottom: solid 1px #fff;
  427. -webkit-transition: all 0.3s cubic-bezier( 0.64, 0.09, 0.08, 1);
  428. transition: all 0.3s cubic-bezier( 0.64, 0.09, 0.08, 1);
  429. background: -webkit-linear-gradient(top, rgba( 255, 255, 255, 0) 96%, #fff 4%);
  430. background: linear-gradient(to bottom, rgba( 255, 255, 255, 0) 96%, #fff 4%);
  431. background-position: - 800px 0;
  432. background-size: 100%;
  433. background-repeat: no-repeat;
  434. }
  435. .login1 .text :focus, .login1 .text :valid {
  436. box-shadow: none;
  437. outline: none;
  438. background-position: 0 0;
  439. }
  440. .login1 .text :focus ::-webkit-input-placeholder, .login1 .text :valid ::-webkit-input-placeholder {
  441. color: #FFC107;
  442. font-size: . 9em;
  443. -webkit-transform: translateY(- 20px); /*各类浏览器的前缀*/
  444. -moz-transform: translateY(- 20px);
  445. -o-transform: translateY(- 20px);
  446. -ms-transform: translateY(- 20px);
  447. transform: translateY(- 20px);
  448. visibility: visible;
  449. }
  450. .login1 ::-webkit-input-placeholder {
  451. color: #fff;
  452. font-weight: 100;
  453. }
  454. /* .login1 :-moz-placeholder { Firefox 18-
  455. color: #fff;
  456. }
  457. .login1 ::-moz-placeholder { Firefox 19+
  458. color: #fff;
  459. }
  460. .login1 :-ms-input-placeholder {
  461. color: #fff;
  462. } */
  463. .login1 input [type="submit"] {
  464. font-size: 1em;
  465. color: #fff;
  466. background: #6439af;
  467. outline: none;
  468. border: none;
  469. cursor: pointer;
  470. padding: 1em;
  471. -webkit-appearance: none;
  472. width: 100%;
  473. margin: 3em 0;
  474. }
  475. .login1 input [type="submit"] :hover {
  476. background: #8a2be2;
  477. -webkit-transform: translateY( 8px);
  478. -ms-transform: translateY( 8px);
  479. -o-transform: translateY( 8px);
  480. transform: translateY( 8px);
  481. -webkit-box-shadow: 0 3px 3px 0 rgba( 0, 0, 0, 0.58);
  482. -moz-box-shadow: 0 3px 3px 0 rgba( 0, 0, 0, 0.58);
  483. box-shadow: 0 3px 3px 0 rgba( 0, 0, 0, 0.58);
  484. -webkit-transition: . 5s all; /*实现过渡效果*/
  485. -moz-transition: . 5s all;
  486. -o-transition: . 5s all;
  487. -ms-transition: . 5s all;
  488. transition: . 5s all;
  489. }
  490. .login1 p {
  491. font-size: 1em;
  492. color: #fff;
  493. text-align: center;
  494. letter-spacing: 1px;
  495. }
  496. .login1 p a {
  497. color: #fff;
  498. -webkit-transition: . 5s all;
  499. -moz-transition: . 5s all;
  500. transition: . 5s all;
  501. }
  502. .login1 p a :hover{
  503. color: #FFC107;
  504. }
  505. .wthree-text {
  506. margin-top: 3em;
  507. }
  508. .wthree-text ul li {
  509. display: inline-block;
  510. float: left;
  511. }
  512. .wthree-text ul li :nth-child(2) {
  513. float: right;
  514. }
  515. .wthree-text ul li a {
  516. font-size: 1em;
  517. color: #fff;
  518. }
  519. .wthree-text ul li a :hover{
  520. color: #FFC107;
  521. }
  522. /*-- checkbox --*/
  523. .wthree-text label {
  524. font-size: 1em;
  525. color: #fff;
  526. font-weight: 400;
  527. cursor: pointer;
  528. position:relative;
  529. }
  530. .wthree-text input .checkbox {
  531. background: #4c2395;
  532. cursor: pointer;
  533. width: 1.2em;
  534. height: 1.2em;
  535. }
  536. .wthree-text input .checkbox :before {
  537. content: "";
  538. position:absolute;
  539. width: 1.2em;
  540. height: 1.2em;
  541. background: inherit;
  542. cursor: pointer;
  543. }
  544. .wthree-text input .checkbox :after {
  545. content: "";
  546. transition: . 4s ease-in-out;
  547. position:absolute;
  548. top: 0px;
  549. left: 0;
  550. z-index: 1;
  551. width: 1.2em;
  552. height: 1.2em;
  553. border: 1px solid #FFC107;
  554. }
  555. .anim input .checkbox :checked :after {
  556. transform: rotate(- 45deg);
  557. height: . 5rem;
  558. border-color: transparent;
  559. border-right-color: transparent;
  560. animation: . 4s rippling . 4s ease;
  561. animation-fill-mode: forwards;
  562. }
  563. @keyframes rippling {
  564. 50% {
  565. border-left-color: #FFC107;
  566. }
  567. 100% {
  568. border-bottom-color: #FFC107;
  569. border-left-color: #FFC107;
  570. }
  571. }
  572. #right{
  573. position:relative;
  574. top: 200px;
  575. text-align:center
  576. }

三、空间功能实现Javascript

主要功能

这部分使用javascript实现网页的一些功能,有表单简单验证用户的登录、图片自动轮播和点击切换、几个窗口事件和鼠标、按钮事件,另外实现用户浏览网页的时间计算,这是我在设计时想到的一个简单功能,直观反映用户浏览时间,在一些网站上也有此功能。

 

1、使用js的onload事件,在网页加载完毕时弹出窗口提示


  
  1. window.onload= function(){
  2. alert( "欢迎来到Read Me,数据以为你加载完毕!")
  3. }

2、网页停留时间(刷新时重新计时)


  
  1. /*网页停留时间记录*/
  2. var second= 0;
  3. var minute= 0;
  4. var hour= 0;
  5. window.setTimeout( "interval();", 1000);
  6. function interval()
  7. {
  8. second++;
  9. if(second== 60)
  10. {
  11. second= 0;minute+= 1;
  12. }
  13. if(minute== 60)
  14. {
  15. minute= 0;hour+= 1;
  16. }
  17. var times= hour+ "时"+minute+ "分"+second+ "秒";
  18. document.record.area.value =times;
  19. window.setTimeout( "interval();", 1000);
  20. }

3、登录界面和简单验证,未涉及后端技术,使用了js设置几个账户和密码,在上面js介绍中代码可以看到设置的2个账号密码,登录成功会提示并跳转到主页,帐户密码错误也会提示。


  
  1. function check(){
  2. var names=[ 'name1', 'name2'];
  3. var psws=[ '123', '321'];
  4. var name= document.getElementsByClassName( "name").item( 0).value;
  5. var psw= document.getElementsByClassName( "password").item( 0).value;
  6. var k= -1; var url = window.location.href;
  7. for(i= 0;i<names.length;i++)
  8. {
  9. if(name==names[i])
  10. k=i;
  11. }
  12. if(k!= -1&&psw==psws[k])
  13. {
  14. alert( "Login successfully!");
  15. /*console.log("登录成功!");
  16.       setCookie("username",userName,2000);*/
  17.        window.location.href=url;
  18. }
  19. else
  20. alert( "用户名不存在或密码错误");
  21. }

Javascript完整代码:


  
  1. // JavaScript Document
  2. //定时器返回值
  3. $( function(){
  4. var time= null;
  5. //记录当前位子
  6. var nexImg = 0;
  7. //用于获取轮播图图片个数
  8. var imgLength = $( ".c-banner .banner ul li").length;
  9. //当时动态数据的时候使用,上面那个删除
  10. // var imgLength =0;
  11. //设置底部第一个按钮样式
  12. $( ".c-banner .jumpBtn ul li[jumpImg="+nexImg+ "]").css( "background-color", "black");
  13. //页面加载
  14. $( document).ready( function(){
  15. // dynamicData();
  16. //启动定时器,设置时间为3秒一次
  17. time = setInterval(intervalImg, 3000);
  18. });
  19. //点击上一张
  20. $( ".preImg").click( function(){
  21. //清楚定时器
  22. clearInterval(time);
  23. var nowImg = nexImg;
  24. nexImg = nexImg -1;
  25. console.log(nexImg);
  26. if(nexImg< 0){
  27. nexImg=imgLength -1;
  28. }
  29. //底部按钮样式设置
  30. $( ".c-banner .jumpBtn ul li").css( "background-color", "white");
  31. $( ".c-banner .jumpBtn ul li[jumpImg="+nexImg+ "]").css( "background-color", "black");
  32. //将当前图片试用绝对定位,下一张图片试用相对定位
  33. $( ".c-banner .banner ul img").eq(nowImg).css( "position", "absolute");
  34. $( ".c-banner .banner ul img").eq(nexImg).css( "position", "relative");
  35. //轮播淡入淡出
  36. $( ".c-banner .banner ul li").eq(nexImg).css( "display", "block");
  37. $( ".c-banner .banner ul li").eq(nexImg).stop().animate({ "opacity": 1}, 1000);
  38. $( ".c-banner .banner ul li").eq(nowImg).stop().animate({ "opacity": 0}, 1000, function(){
  39. $( ".c-banner ul li").eq(nowImg).css( "display", "none");
  40. });
  41. //启动定时器,设置时间为3秒一次
  42. time = setInterval(intervalImg, 3000);
  43. })
  44. //点击下一张
  45. $( ".nexImg").click( function(){
  46. clearInterval(time);
  47. intervalImg();
  48. time = setInterval(intervalImg, 3000);
  49. })
  50. //轮播图
  51. function intervalImg(){
  52. if(nexImg<imgLength -1){
  53. nexImg++;
  54. } else{
  55. nexImg= 0;
  56. }
  57. //将当前图片试用绝对定位,下一张图片试用相对定位
  58. $( ".c-banner .banner ul img").eq(nexImg -1).css( "position", "absolute");
  59. $( ".c-banner .banner ul img").eq(nexImg).css( "position", "relative");
  60. $( ".c-banner .banner ul li").eq(nexImg).css( "display", "block");
  61. $( ".c-banner .banner ul li").eq(nexImg).stop().animate({ "opacity": 1}, 1000);
  62. $( ".c-banner .banner ul li").eq(nexImg -1).stop().animate({ "opacity": 0}, 1000, function(){
  63. $( ".c-banner .banner ul li").eq(nexImg -1).css( "display", "none");
  64. });
  65. $( ".c-banner .jumpBtn ul li").css( "background-color", "white");
  66. $( ".c-banner .jumpBtn ul li[jumpImg="+nexImg+ "]").css( "background-color", "black");
  67. }
  68. //轮播图底下按钮
  69. //动态数据加载的试用应放在请求成功后执行该代码,否则按钮无法使用
  70. $( ".c-banner .jumpBtn ul li").each( function(){
  71. //为每个按钮定义点击事件
  72. $( this).click( function(){
  73. clearInterval(time);
  74. $( ".c-banner .jumpBtn ul li").css( "background-color", "white");
  75. jumpImg = $( this).attr( "jumpImg");
  76. if(jumpImg!=nexImg){
  77. var after =$( ".c-banner .banner ul li").eq(jumpImg);
  78. var befor =$( ".c-banner .banner ul li").eq(nexImg);
  79. //将当前图片试用绝对定位,下一张图片试用相对定位
  80. $( ".c-banner .banner ul img").eq(nexImg).css( "position", "absolute");
  81. $( ".c-banner .banner ul img").eq(jumpImg).css( "position", "relative");
  82. after.css( "display", "block");
  83. after.stop().animate({ "opacity": 1}, 1000);
  84. befor.stop().animate({ "opacity": 0}, 1000, function(){
  85. befor.css( "display", "none");
  86. });
  87. nexImg=jumpImg;
  88. }
  89. $( this).css( "background-color", "black");
  90. time = setInterval(intervalImg, 3000);
  91. });
  92. });
  93. });
  94. function check(){
  95. var names=[ 'name1', 'name2'];
  96. var psws=[ '123', '321'];
  97. var name= document.getElementsByClassName( "name").item( 0).value;
  98. var psw= document.getElementsByClassName( "password").item( 0).value;
  99. var k= -1; var url = window.location.href;
  100. for(i= 0;i<names.length;i++)
  101. {
  102. if(name==names[i])
  103. k=i;
  104. }
  105. if(k!= -1&&psw==psws[k])
  106. {
  107. alert( "Login successfully!");
  108. /*console.log("登录成功!");
  109.       setCookie("username",userName,2000);*/
  110.        window.location.href=url;
  111. }
  112. else
  113. alert( "用户名不存在或密码错误");
  114. }
  115. /*网页停留时间记录*/
  116. var second= 0;
  117. var minute= 0;
  118. var hour= 0;
  119. window.setTimeout( "interval();", 1000);
  120. function interval()
  121. {
  122. second++;
  123. if(second== 60)
  124. {
  125. second= 0;minute+= 1;
  126. }
  127. if(minute== 60)
  128. {
  129. minute= 0;hour+= 1;
  130. }
  131. var times= hour+ "时"+minute+ "分"+second+ "秒";
  132. document.record.area.value =times;
  133. window.setTimeout( "interval();", 1000);
  134. }
  135. function f1()
  136. {
  137. alert( "功能正在完善更新中,敬请期待!")
  138. }
  139. window.onload= function(){
  140. alert( "欢迎来到Read Me,数据以为你加载完毕!")
  141. }

总结

纵观整个网页设计,并不是很难完成,但是,基本包含了前端的基础内容,在开篇列举了使用到的元素标签,对于掌握基础前端设计是比较好的案例,适合初学者。购书+阅读静态网页设计与实现,纯HTML+CSS+Javascript,基本实现网站经典功能和一些自己的想法,包括:图片轮播切换、点击切换、表单登录验证、用户浏览网站时长计算、鼠标点击提示、加载提示,体验前端开发的过程,小白入门前端开发案例详细步骤。

项目完整代码已打包在CSDN:MyBookWeb,需要可以下载。也可联系我获取。 


 

 好多感兴趣的小伙伴都跟我私信和评论留言,没想到有这么多人哈哈哈。所以呢,发了几次邮箱感觉有点麻烦,还有可能CSDN下载需要的积分会自动提升,许多朋友下载不了,我就放网盘吧,大家自取,记得点赞关注收藏,三连呀!

链接:https://pan.baidu.com/s/1xa2TDijZ8QXETiu6QwpMOA 
提取码:iikq

我的CSDN链接地址:https://blog.csdn.net/Charzous/article/details/108407720


转载:https://blog.csdn.net/Charzous/article/details/108407720
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场