掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1965|回复: 12

[教程] 简单易用Javascript Hide and Show

[复制链接]

该用户从未签到

发表于 2016-9-17 19:57:21 | 显示全部楼层 |阅读模式
Javascript 就这么几行:% U4 B: O) x& v5 A" k: O
8 M$ [5 F2 ~+ J3 \# c3 P2 y# ]. p
function toggle() {
7 V# d; I% _0 A3 Y- z$ ] if (document.getElementById("showhide").className=="show"){% E1 W! N5 H1 f7 B9 Y
  document.getElementById("showhide").className="hide";0 B% z/ ?# d" j3 z3 [
  }4 \6 u# T  i- V
else{
  @$ W$ t* L% _: L1 K  document.getElementById("showhide").className="show";' F. g$ x# F6 q9 ~, `
}
+ q, X/ F5 q7 X}
. @3 b0 D1 f, [+ t& {  g8 f" ~* G) B  V4 u: |+ x* }
css 里面加上hide 、 show,缺省定义是hide. (反过来也行,自己修改一下就好了)/ u3 h# D/ A& z8 r

: L+ g' ]1 R6 h% X9 H) W5 UHTML / MDX源文件中 任何元素都能使用。$ d, o2 L- C, k! g

4 Q/ a3 l& |, K! \6 |% Q7 m& q- ?7 I+ ~
倒是有个问题也顺便请教一下:0 {5 v8 i) x- W! [- {
* }( @# G* t3 z/ W
我想显示隐藏中的前10个元素、20个、50个、100个或者全部(如附件中的<a>),这样的JS要怎么写?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x
  • TA的每日心情
    开心
    2019-5-18 14:33
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2016-9-24 22:48:14 | 显示全部楼层
    好办法,谢谢分享。

    该用户从未签到

     楼主| 发表于 2016-9-25 02:32:17 | 显示全部楼层
    本帖最后由 lxchen2001 于 2016-9-25 02:36 编辑
    ! _) i7 Z0 L" L3 Q' ]7 d( @8 o* a
    jiangws 发表于 2016-9-24 22:48
    ! R$ b2 B' s4 ?2 h4 S3 _好办法,谢谢分享。

    9 |" o0 N1 ]6 i7 M  p) b0 ?. c7 z
    后来发现这段代码在MDICT中不能很好应用,在GD中是没问题。
    . R; b1 e9 N& R+ G1 E5 s, N, B( v3 d* U  @2 m- y  u! F0 W
    也发现另外的问题,比如一个页面中有多个ID, 这个就不太适用。5 f" b! s( U* K6 x! y6 T

      \7 w% ~" l8 z2 I( z3 w' J在学习实践中,学到了新写法,这个可以在MDICT中正常运行,代码同样的简洁。
    - z  [' l. l1 ^4 `
    9 z  U& E4 s  A! i(点击Full Hyponyms测试)

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?免费注册

    x

    该用户从未签到

    发表于 2016-9-25 12:50:57 | 显示全部楼层
    想显示隐藏中的前10个元素、20个、50个、100个或者全部

    * O/ N4 H# U4 s% s  Y4 \5 x- y. O$ M9 D7 m8 N# W/ K
    在下不会css/js和排版. 之前有参考阅读大神的帖子. 偶有心得, 不作参考.
      C: k; o  ]8 f5 s" t都是大神们的大作, 抱歉忘记了名字了. 在下遵循不知道名字的开源协定, 上载测试文件.8 v. ^7 Y( a& P0 @6 f9 k6 f

    7 C6 G: F$ Q" J' T& B如果使用previousSibling/nextSibling等, 可能会有大的机能开支吧. 如果i7应该是没有所谓...) r, g' n" a4 r( w  m  F2 P. P

    # L) H1 r9 X! w3 I如果css/js, 在文本中需要显示隐藏的内容加上标签, 应该是很快的. 不过会增加文本大小. 也只是愚见, 不作参考.
    4 {" ~' |! ~4 V# i9 A2 d0 f; e7 k
    ( J. n. P7 X7 ]7 ?, A- K7 o& G这个只适应用MDict_PC 1.3 RC4, 其他的就不知道了.# l1 R$ b, m# \9 A5 N' B0 `

    7 U0 l; P- m3 e; V大致如下:3 L/ ~! e/ A" }4 C. w
    js
    * `& Y0 N7 g: y7 o* a- I
    1. function transChs_test(ele) {
      & o" L. c, o; c- H
    2.         if (ele.className == 'js_active') {1 v# e6 b. W1 X5 }( Y  T
    3.                 ele.className = '';
      1 ?  d' i) u7 b& L3 `5 D- S
    4.                 document.getElementById('test').className = '';
      5 `( l" r1 A+ f5 m) R
    5.         } else {
      & V( {0 n' F, J# m2 s
    6.                 document.getElementById('test').className = 'js_chs';
      ; ^& i3 T' j( m* L2 _& W( x- y
    7.                 ele.className = 'js_active'
      . Q$ K+ T5 \; Q6 ?, ~' ?" X
    8.         }0 x: u. Z& r3 K+ X
    9. }
    复制代码
    5 b/ P5 W. B2 f

    - P) r+ v* ]3 n0 ]7 ]) q. w5 h6 {css部分6 m) c/ d7 R  |  m/ f3 V
    1. /* default: chinese */
      - F( n3 C' Q) J: J
    2. 1 ~1 c; }$ L: ~; j
    3. .cn_btn{font-weight:bold;color:White;background-color:DarkSlateBlue;padding-left:5px;margin-right:10px;cursor:pointer;}* m: S$ H  z1 o0 Q
    4. .cn_btn:hover{color:MidnightBlue;background-color:Pink;}! I( W. l6 ~% `( h- s7 ]
    5. .js_active .cn_btn{font-weight:bold;color:Gray;background:Gainsboro;}
      ! j" _8 w$ Y! B' t, b! a# \
    6. .js_active .cn_btn:hover{color:MidnightBlue;background:Pink;}
      ' y& P. j9 z9 B. V
    7. 1 f; `8 a2 Z0 M1 H) k
    8. .js_chs .L_CEX,.js_chs .L_DEC,.js_chs .L_EXC,.js_chs .L_DCH,.js_chs .L_ITC{display:none;}
      3 Q; M, L, g2 S5 W: {0 w" z
    9. . v) _# t; z. ~- v

    10. - \8 Y( d5 v) v' [( i; r4 w/ m" }
    11. /* default: no chinese */
      : P0 x8 \9 m1 h1 g( c
    12. /*' O  L: K# K* A% v/ G/ Z7 ^4 d5 Q
    13. .cn_btn{font-weight:bold;color:Gray;background-color:Gainsboro;padding-left:5px;margin-right:10px;cursor:pointer;}% `* e9 r) l9 _. b
    14. .cn_btn:hover{color:MidnightBlue;background-color:Pink;}
      6 w3 V2 \0 U5 l! N- L
    15. .js_active .cn_btn{font-weight:bold;color:White;background:DarkSlateBlue;}8 ]* Q# u3 a/ c$ _: z
    16. .js_active .cn_btn:hover{color:MidnightBlue;background:Pink;}6 t8 w. N3 d8 E- ?+ X" Z" Z/ a0 V9 @8 L
    17. ' S6 i! e3 n4 ^  W  q; I
    18. .js_chs .L_CEX,.js_chs .L_DEC,.js_chs .L_EXC,.js_chs .L_DCH,.js_chs .L_ITC{display:inline;}) r- m6 m5 b6 j, x4 |
    19. .L_CEX,.L_DEC,.L_EXC,.L_DCH,.L_ITC{display:none;}
      1 F! }5 C- D/ ]* I. J! K4 A% q9 g
    20. */
    复制代码

    ! n" A8 f& o- |6 Q" i# E( v0 j4 p8 d% h4 Y8 y" Z. P. C9 ~6 x2 o2 |

    8 L2 t) w& B  p- h; s" D1 v6 X文本词条头部加个总ID: test, 其余需要显示或隐藏的, 加对应标签, 如上述的中文标签. 加个按键标签, 就可以显示隐藏中文了. 不知道是否理解了楼主的所说的., u: j- \& D# [! e' w4 m1 \
    1. <link href="test.css" rel="stylesheet" type="text/css"/><script src="test.js"></script>; u2 N. S5 G6 t( u) X
    2. <div class="test" id="test">
      . M1 e, ]# N" y5 u
    3.    <span class="L_ENT">
        h: u: H) B9 X
    4.     test
      + R& @" ]6 j2 }$ X- P& Y
    5.    </span># k6 [/ [' c4 d. b5 T
    6.    <a name="L_topv">
      1 R5 i' X9 j  `# C; {- C1 ?$ K
    7.    </a>* V) f9 p7 z% Z4 b3 t. `  Q2 N
    8.    <div class="L_MRK">
      # b. c. K1 s5 ]9 X6 ^6 p+ w
    9.     <span class="cn_js" onclick="transChs_test(this)">2 X+ z& r& d5 W# I
    10.      <span class="cn_btn" title="Chinese on/off">
      & y4 c* ^- ^* e2 u0 _$ q, l& w( z
    11.       Chs
      $ d5 k7 U8 f9 v4 B
    12.      </span>( r8 z, ]9 ]. D9 U
    13.     </span>
      4 h) \8 M6 L) U7 a+ Y% i% Z) L6 C0 T) d
    14. ...
      1 O2 T# b6 a- \5 h$ V/ F
    15. ...
      4 M7 q: M+ T+ ]; y- b" [6 a1 h0 P. y
    16. ...
    复制代码

    ' X; B2 V/ D) }, A( K! U0 l3 q6 B3 k/ T

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?免费注册

    x

    该用户从未签到

     楼主| 发表于 2016-9-25 16:47:44 | 显示全部楼层
    idict 发表于 2016-9-25 12:50
    5 R( u0 B# v3 c' Z/ c+ |在下不会css/js和排版. 之前有参考阅读大神的帖子. 偶有心得, 不作参考.9 Y  q, D; Y% ^5 ?$ r
    都是大神们的大作, 抱歉忘记 ...
    2 P7 [% }+ h; o# v1 L3 r4 `. V
    谢谢分享心得。 $ F/ N+ T' Q  ^

    9 X* U- y  K7 b点击本元素来调整css的配置, 挺好的想法。虽然和我的用法不一样,但明白思路了。& s0 e3 H- I- U1 e- Y& ~

    2 l) n& O  M) L' S5 f4 c7 ^(复制代码部分复制出来并入了很多乱码,不知能否单独提供一下?)& W/ k2 t- X5 y
    8 ~7 Z! @3 ?" L# j' v+ |
    谢谢

    该用户从未签到

    发表于 2016-9-26 13:56:55 | 显示全部楼层
    lxchen2001 发表于 2016-9-25 16:47  x  C+ q! w2 N$ O7 m
    谢谢分享心得。 ; u+ s3 k) v4 N! q
    8 K5 y  ^7 R1 y( m
    点击本元素来调整css的配置, 挺好的想法。虽然和我的用法不一样,但明白思路了。

    0 P( Z9 d3 o* b: x" Q- g* ]; S居然忘记上载文件了, 怪不得积分没有上涨啦, 才半分啊.../ B2 S, f0 B/ [/ }* ~2 T

    * G9 {5 |  b) _7 o只得重做, 之前的删除了.
    & q( w3 A& X: D7 Y3 w* }. O8 ~
    . [  p- E* q8 W7 `见附件如下, 不作参考./ e1 [# J9 u7 o5 |1 T3 N7 ^1 E

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?免费注册

    x

    该用户从未签到

    发表于 2016-9-26 15:02:44 | 显示全部楼层
    idict 发表于 2016-9-25 12:50
    8 L: c" `$ r: H在下不会css/js和排版. 之前有参考阅读大神的帖子. 偶有心得, 不作参考.: w8 _3 ~  l2 X. w+ K
    都是大神们的大作, 抱歉忘记 ...

    ) z0 k# G+ }+ p3 W颜值很高

    该用户从未签到

    发表于 2016-9-29 20:23:26 | 显示全部楼层
    我记得LZ一开始是用.style.display ='none '?现在的写法有什么优点么?

    该用户从未签到

     楼主| 发表于 2016-9-29 21:14:41 | 显示全部楼层
    fnaviwwo1 发表于 2016-9-29 20:23
    ( X2 |# h- d" R* C2 [& L我记得LZ一开始是用.style.display ='none '?现在的写法有什么优点么?

    + V+ z: |' ~, R" ]都可行! C* G1 S: A7 K0 S, r, V1 R

    $ Q( P$ j# i  r+ Y, B用class的话 可以用css来控制,而且不光是隐藏显示,包括其他的css设定
  • TA的每日心情
    开心
    2019-5-18 14:33
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2016-10-1 23:00:00 | 显示全部楼层
    idict 发表于 2016-9-26 13:56& e& g+ w/ |, q1 P2 w; m# g
    居然忘记上载文件了, 怪不得积分没有上涨啦, 才半分啊...
    ! i2 Q6 r4 i7 ]
    3 h, N) W9 [( i8 _8 d5 z只得重做, 之前的删除了.

    * h, |+ g  B/ r5 A0 U很好的想法,谢谢!
  • TA的每日心情
    开心
    2019-5-18 14:33
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2016-10-1 23:06:49 | 显示全部楼层
    lxchen2001 发表于 2016-9-25 02:32
    ) `' `9 X1 w5 B8 i; a5 W/ i8 a后来发现这段代码在MDICT中不能很好应用,在GD中是没问题。/ m% E( U5 l& N- j3 ]

    * D2 S5 O- ?4 z" Z也发现另外的问题,比如一个页面中有多 ...

    ; `, A2 O$ p3 P  t: X! q使用this.nextElementSibling,对词典的排版要求很高,要作全面的检查,但效果很好的。

    该用户从未签到

     楼主| 发表于 2016-12-2 02:59:45 | 显示全部楼层
    jiangws 发表于 2016-10-1 23:069 i# a' m$ Y; g3 ~
    使用this.nextElementSibling,对词典的排版要求很高,要作全面的检查,但效果很好的。

    9 Y: u8 x" B" F% q3 J9 e3 K8 g嗯 是的2 W6 r  _7 S6 F6 @
    0 q8 Z( E6 I2 x' {) f
    看别人的标签 有时觉得比较累 所以倾向按照自己的想法去完成
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2024-4-29 20:44 , Processed in 0.049246 second(s), 8 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

    快速回复 返回顶部 返回列表