teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

追加の情報、具体的にソースを書きました(実戦に近い状態)

2020/05/18 02:29

投稿

bakio
bakio

スコア21

title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,12 @@
1
1
  ```html
2
2
 
3
+ <div class="lp_timer">
4
+ <div class="cdown" data-cdown-min="15"></div>
5
+ </div>
3
6
 
4
- <div class="フローティングする要素"><img src="img/フローティングする要素.jpg" ></div>
7
+ <p class="cp_bnr"><img src="img/timer_15min_bnr.jpg" ></p>
5
8
 
6
9
 
7
- <div class="フローティング要素の下の画像"><img src="img/フローティング要素の下の画像.jpg" ></div>
8
10
 
9
11
 
10
12
  ```
@@ -12,21 +14,99 @@
12
14
 
13
15
  ```css
14
16
 
15
- .フローティングする要素{
17
+ .lp_timer {
18
+ background: url("../img/timer_15min_bg.jpg")no-repeat center top;
19
+ background-size: 100%;
20
+ height: 20vw;
21
+ width: 100%;
22
+ overflow: hidden;
16
23
  position: fixed;
17
24
  z-index: 100;
25
+ }
18
26
 
27
+ .cdown,
28
+ .cdown-done,
29
+ .cdown-loop {
30
+ font-size: 7vw;
31
+ color: #FDF051;
32
+ font-weight: bold;
33
+ position: relative;
34
+ top: 12vw;
35
+ left: 34vw;
36
+ width: 100%;
37
+ }
38
+
39
+
40
+ .cp_bnr{
41
+ margin-top: 10vw;
19
42
  }
20
43
 
21
- .フローティング要素の下の画像{
44
+
22
- margin: 100px;
23
- }
24
45
  ```
25
46
 
47
+
48
+ ```javascript
49
+
50
+ window.addEventListener(
51
+ "load",
52
+ function() {
53
+ var cdown = new Object();
54
+ cdown.elem = document.querySelectorAll(".cdown");
55
+ cdown.tmr = new Array();
56
+ cdown.getTime = function(I) {
57
+ var attributes = cdown.elem[I].attributes;
58
+ for (var type, value, i = 0; i < attributes.length; i++) {
59
+ type = attributes[i].name.match(/(^data-cdown-)(.+)/);
60
+ if (type) {
61
+ value = parseInt(attributes[i].value, 10) || 0;
62
+ return type[2] == "min" ? value * 60 : value;
63
+ }
64
+ }
65
+ return null;
66
+ };
67
+ cdown.start = function(I) {
68
+ var sec = cdown.getTime(I);
69
+ if (sec == null) {
70
+ return;
71
+ }
72
+ var target = new Date().getTime() + sec * 1000;
73
+ cdown.tmr[I] = setInterval(function() {
74
+ var now = new Date().getTime();
75
+ var left = target - now;
76
+ var output = {
77
+ min: Math.floor((left % (1000 * 60 * 60)) / (1000 * 60)),
78
+ sec: Math.floor((left % (1000 * 60)) / 1000),
79
+ ms: left % 1000,
80
+ };
81
+ console.log(left);
82
+ if (left > 0) {
83
+ cdown.elem[I].textContent = "" + ("0" + output.min).slice(-2) + " : " + ("0" + output.sec).slice(-2) + " : " + ("00" + output.ms).slice(-2);
84
+ } else {
85
+ cdown.elem[I].textContent = "0:00"; // 終了後に表示される言葉
86
+ window.clearInterval(cdown.tmr[I]);
87
+ }
88
+ }, 20);
89
+ };
90
+ for (var i = 0; i < cdown.elem.length; i++) {
91
+ cdown.start(i);
92
+ }
93
+ },
94
+ false
95
+ );
96
+
97
+
98
+
99
+
100
+ ```
101
+
102
+
103
+
104
+
105
+
26
106
  上記コードのように画像が上下2枚の構成で、上の画像をフローティングした時に
27
- 下の画像が被ってしまうので
107
+ 下の画像 cp_bnr が被ってしまうので
28
108
 
29
- .フローティング要素の下の画像 に
109
+ フローティング要素の下の画像 cp_bnr
30
110
 
31
111
  margin-top
32
112
  padding-top
@@ -34,9 +114,9 @@
34
114
  などを指示して余白を作ろうと思ったんですが全くcssが反応しません。
35
115
  class名などは間違ってなく、
36
116
 
37
- .フローティング要素の下の画像 img
117
+ .cp_bnr img
38
118
 
39
- img.フローティング要素の下の画像
119
+ img.cp_bnr
40
120
 
41
121
  など書いたり他のcss(width:100%など)の指示を書いたりしたんですが
42
122
  それすら反映されず....
@@ -45,10 +125,11 @@
45
125
 
46
126
  ###### 解決したいこと
47
127
 
48
- .フローティング要素の下の画像
128
+ .cp_bnr
49
129
  と言うclass名の要素に 余白を作るcss指示を反映させたい
50
130
 
131
+
132
+
51
133
  ###### 備考
52
134
 
53
- class名を今の時点では日本語表記です本番は半角英語表記なので
135
+ javascript不要かもしれませんため
54
- あくまで仮で入ってます。