• 4.设置样式


    目录

    1  css()设置样式

    2  下拉菜单练习

    3  排他思想

    4  淘宝精品服饰案例

    5  链式编程

    5.1  链式编程-排他思想

    5.2  链式编程分析

    6  获取样式

    7.类操作

    7.1  添加类 addClass()

    7.2  删除类 removeClass()

    7.3  切换类 toggleClass()

    8  tab栏切换


    1  css()设置样式

    我们通过 element.css('属性','值')的方法来设置样式

    我们刚刚只有一个盒子,现在我们搞四个盒子

    发现都被设置了样式

    也就是.css方法会将jQuery对象中的所有元素都设置样式。如果你使用原生的JS,你需要将得到的数组进行遍历。但在jQuery中是不用的,不仅是css方法,其余的方法也是一样,我们称这个性质为jQuery的隐式迭代

    如果你要设置的属性值是300px这种,你不需要加引号,直接写300就可以了

    css可以接收键值对形式的值以修改多组样式

    使用键值对的时候属性可以不加引号,但是涉及到横杠的属性(像下面的background-color)要使用驼峰命名法(不使用就会报错)

    2  下拉菜单练习

    鼠标放到哪个微博上哪个菜单就出现下拉菜单

    代码

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. head>
    9. <style>
    10. * {
    11. padding:0px;
    12. margin:0px;
    13. }
    14. li {
    15. list-style: none;
    16. }
    17. .biggest_ul {
    18. width:300px;
    19. display: flex;
    20. justify-content: space-between;
    21. margin:100px auto;
    22. }
    23. .biggest_ul li ul {
    24. display: none;
    25. }
    26. style>
    27. <body>
    28. <ul class="biggest_ul">
    29. <li>
    30. <a href="#">微博a>
    31. <ul>
    32. <li>
    33. <a href="#">私信a>
    34. li>
    35. <li>
    36. <a href="#">评论a>
    37. li>
    38. <li>
    39. <a href="#">@我a>
    40. li>
    41. ul>
    42. li>
    43. <li>
    44. <a href="#">微博a>
    45. <ul>
    46. <li>
    47. <a href="#">私信a>
    48. li>
    49. <li>
    50. <a href="#">评论a>
    51. li>
    52. <li>
    53. <a href="#">@我a>
    54. li>
    55. ul>
    56. li>
    57. <li>
    58. <a href="#">微博a>
    59. <ul>
    60. <li>
    61. <a href="#">私信a>
    62. li>
    63. <li>
    64. <a href="#">评论a>
    65. li>
    66. <li>
    67. <a href="#">@我a>
    68. li>
    69. ul>
    70. li>
    71. ul>
    72. body>
    73. <script src="../../jquery-3.6.1.min.js">script>
    74. <script>
    75. biggest_ul = $('.biggest_ul')
    76. biggest_ul.children('li').mouseover(function() {
    77. $(this).children('ul').css('display','block')
    78. })
    79. biggest_ul.children('li').mouseout(function() {
    80. $(this).children('ul').css('display','none')
    81. })
    82. script>
    83. html>

    出了上面提到的之外使用了两个事件mouseover与mouseout,另外在jQuery中使用$(this)来代表this

    也可以不用css进行操作,直接使用jQuery中的show()与hide()

    效果相同

    3  排他思想

    思路都是一样的,首先将所有都搞成原样,然后给特定的元素设置

    也可以换一种写法,先给其他同类兄弟搞成原样,然后给点击的元素设置样式

    效果相同

    总的来讲后面这种写法更好些,没有引入变量,维护时方便些

    4  淘宝精品服饰案例

    效果是这样的

    我就不搞淘宝那个图了,我搞点儿别的图

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. <style>
    9. section {
    10. display: flex;
    11. width:400px;
    12. height:300px;
    13. margin:100px auto;
    14. }
    15. .left {
    16. display: flex;
    17. flex-direction: column;
    18. width:20%;
    19. height:100%;
    20. }
    21. .left div {
    22. width:100%;
    23. height:20%;
    24. border:1px solid red;
    25. text-align: center;
    26. padding-top:10px;
    27. }
    28. .right {
    29. width:80%;
    30. height:100%;
    31. margin-left: 20px;
    32. }
    33. .right img {
    34. display: none;
    35. width:100%;
    36. height:100%
    37. }
    38. .right img:nth-child(1) {
    39. display: block;
    40. }
    41. style>
    42. head>
    43. <body>
    44. <section>
    45. <div class="left">
    46. <div>CSS3div>
    47. <div>JavaScriptdiv>
    48. <div>jquerydiv>
    49. <div>opencvdiv>
    50. <div>pyqt5div>
    51. <div>pythondiv>
    52. <div>pytorchdiv>
    53. <div>ubuntudiv>
    54. div>
    55. <div class="right">
    56. <img src="upload/CSS3.png" alt="">
    57. <img src="upload/JavaScript.png" alt="">
    58. <img src="upload/jquery.jpg" alt="">
    59. <img src="upload/opencv.png" alt="">
    60. <img src="upload/pyqt5.png" alt="">
    61. <img src="upload/python.png" alt="">
    62. <img src="upload/pytorch.png" alt="">
    63. <img src="upload/ubuntu.png" alt="">
    64. div>
    65. section>
    66. body>
    67. <script src="../jquery-3.6.1.min.js">script>
    68. <script>
    69. all_left_div = $('.left div')
    70. all_right_img = $('.right img')
    71. all_left_div.mouseover(function() {
    72. $(this).css('background-color','cyan')
    73. $(this).siblings('div').css('background-color','')
    74. index = $(this).index()
    75. all_right_img.eq(index).show()
    76. all_right_img.eq(index).siblings('img').hide()
    77. })
    78. script>
    79. html>

    上面用到了 index = $(this).index() 拿到当前左侧悬停的索引

    5  链式编程

    5.1  链式编程-排他思想

    之前我们搞排他思想是这样写的

    发现用了两次$(this),那么就可以这样写

    效果是一样的

    它是这样的

    5.2  链式编程分析

    可以这样理解,有两种函数,一种是查询函数,一种是执行函数。像siblings(),parents()这种就是查询函数,查询函数能返回一个对象。像CSS这种就是执行函数

    链条中的首位肯定是查询函数(或者叫一个对象)

    这个时候判断是不是跟了一个执行函数,如果是执行函数就执行,执行后再判断是不是

    如果还是就还执行,一直到后面跟的不是执行函数了,这个时候我们要换一个新的对象,再执行后面的执行函数

    我们做一个例子

    css

    html

    JS

    结果是这样的

    首先发现了第一个元素是son,然后发现后面是执行函数,给son搞了一个背景颜色,然后发现又是一个执行函数,给son搞了一个不透明度

    下面发现后面不跟执行函数了,那么这个时候就换了一个对象,从这之后和son没有任何关系了,后面发现是个执行函数,给father搞了一个背景颜色

    下面发现后面不跟执行函数了,这个时候又换了一个对象,从这之后和son,father没有任何关系了,后面发现是个执行函数,给grandpa搞了一个背景颜色

    6  获取样式

    获取样式与设置样式的函数相同,我们使用 element.css('样式名') 来获取样式

    • css()如果不给参数的话会报错

    7.类操作

    如果样式过多我们通常给元素一个类名或删除元素一个类名来修改样式

    7.1  添加类 addClass()

    7.2  删除类 removeClass()

    删除一个类并不影响其他的类

    7.3  切换类 toggleClass()

    toggleClass()可以把有的类变没,没的类变有

    8  tab栏切换

    我们用一下jQuery来实现一下之前做个的tab栏切换功能 

    22.自定义属性_Suyuoa的博客-CSDN博客_removeattribute

    我们依然沿用之前的CSS与html,js我们使用jQuery的方法

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. <style>
    7. * {
    8. margin:0px;
    9. padding:0px;
    10. box-sizing:border-box;
    11. }
    12. li {
    13. list-style:none;
    14. float:left;
    15. margin-left:5px;
    16. cursor:pointer;
    17. }
    18. #tab {
    19. position:relative;
    20. width:500px;
    21. height:500px;
    22. margin:50px auto;
    23. }
    24. .content_area {
    25. position:absolute;
    26. top:20px;
    27. width:100%;
    28. }
    29. .current {
    30. background-color:red;
    31. color:white;
    32. }
    33. .content {
    34. position:absolute;
    35. display:none
    36. }
    37. style>
    38. head>
    39. <body>
    40. <div id="tab">
    41. <ul>
    42. <li class="current">商品介绍li>
    43. <li>规格与包装li>
    44. <li>售后保障li>
    45. <li>商品评价li>
    46. ul>
    47. <div class="content_area">
    48. <div class="content" style="display:block;">商品介绍内容div>
    49. <div class="content">规格与包装内容div>
    50. <div class="content">售后保障内容div>
    51. <div class="content">商品评价内容div>
    52. div>
    53. div>
    54. body>
    55. <script src="../jquery-3.6.1.min.js">script>
    56. <script>
    57. lis = $('#tab ul li')
    58. contents = $('.content')
    59. lis.click(function() {
    60. $(this).siblings().removeClass('current')
    61. $(this).addClass('current')
    62. index = $(this).index()
    63. contents.css('display','none')
    64. contents.eq(index).css('display','block')
    65. })
    66. script>
    67. html>

    发现可以实现 

  • 相关阅读:
    二、枚举 enum
    CF486D Valid Sets
    【QT进阶】Qt http编程之实现websocket client客户端
    python之计算市场技术指标
    文件的编译与链接
    线程的概念和创建【javaee初阶】
    十种经典排序算法总结
    Java的重要特点
    rke方式安装k8s集群
    【Flowable】使用UEL整合Springboot从0到1(四)
  • 原文地址:https://blog.csdn.net/potato123232/article/details/126705921