21.05.2018, 17:40
|
|
Профессор
|
|
Регистрация: 13.04.2018
Сообщений: 232
|
|
Вывести свойства в отдельный контейнер
Добрый день.
Подскажите, как при помощи скрипта вывести в отдельный div контейнер только свойство box-shadow одного из блоков при нажатии? их 4 https://jsfiddle.net/5usu50ep/ Т.е. я нажимаю на 1 и 2, а в контейнере выводятся класс и свойства тени каждого контейнера.
|
|
21.05.2018, 18:17
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
madeas,
если макет разместить тут, ответы появятся оперативнее ...
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.flex {
display: flex;
}
.block {
position: relative;
width: 100px;
height: 100px;
margin: 20px;
border: 0;
background: #fff !important;
}
.block::after {
content: '';
width: 100%;
height: 100%;
position: absolute;
background-color: #fff;
}
.bShadow-1{-webkit-box-shadow:0px 1px 1px 1px rgba(0,0,0,0.06);-moz-box-shadow:0px 1px 1px 1px rgba(0,0,0,0.06);box-shadow:0px 1px 1px 1px rgba(0,0,0,0.06);}
.bShadow-2{-webkit-box-shadow:0 0 20px 0 rgba(150,150,150,.1);-moz-box-shadow:0 0 20px 0 rgba(150,150,150,.1);box-shadow:0 0 20px 0 rgba(150,150,150,.1);}
.bShadow-3{-webkit-box-shadow:0 20px 60px -10px rgba(0,0,0,.1);-moz-box-shadow:0 20px 60px -10px rgba(0,0,0,.1);box-shadow:0 20px 60px -10px rgba(0,0,0,.1);}
.bShadow-4{-webkit-box-shadow:0 15px 45px -9px rgba(0,0,0,0.25);-moz-box-shadow:0 15px 45px -9px rgba(0,0,0,0.25);box-shadow:0 15px 45px -9px rgba(0,0,0,0.25);}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
var b = $(".block"), out = $(".out"), text;
b.on("click", function() {
text = this.className + " " + $(this).css("box-shadow")
out.text(text)
})
});
</script>
</head>
<body>
<div class="flex numbers">
<input type="checkbox" class="block bShadow-1">
<input type="checkbox" class="block bShadow-2">
<input type="checkbox" class="block bShadow-3">
<input type="checkbox" class="block bShadow-4">
</div>
<div class="out"></div>
</body>
</html>
|
|
21.05.2018, 18:25
|
|
Профессор
|
|
Регистрация: 11.08.2017
Сообщений: 208
|
|
Вариант без jQuery
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Пример</title>
</head>
<body>
<div class="flex numbers">
<input type="checkbox" class="block bShadow-1">
<input type="checkbox" class="block bShadow-2">
<input type="checkbox" class="block bShadow-3">
<input type="checkbox" class="block bShadow-4">
</div>
<div class="result"></div>
<script >
window.onload = function(){
var items = document.querySelectorAll('.flex input');
var result = document.querySelector('.result');
for(var i = 0; i < items.length; i++){
items[i].addEventListener("click", getShadow);
}
function getShadow(e){
var styleItem = getComputedStyle(e.target);
result.innerHTML = styleItem.boxShadow;
}
}
</script>
<style type="text/css">
.flex {
display: flex;
}
.block {
position: relative;
width: 100px;
height: 100px;
margin: 20px;
border: 0;
background: #fff !important;
}
.block::after {
content: '';
width: 100%;
height: 100%;
position: absolute;
background-color: #fff;
}
.bShadow-1{-webkit-box-shadow:0px 1px 1px 1px rgba(0,0,0,0.06);-moz-box-shadow:0px 1px 1px 1px rgba(0,0,0,0.06);box-shadow:0px 1px 1px 1px rgba(0,0,0,0.06);}
.bShadow-2{-webkit-box-shadow:0 0 20px 0 rgba(150,150,150,.1);-moz-box-shadow:0 0 20px 0 rgba(150,150,150,.1);box-shadow:0 0 20px 0 rgba(150,150,150,.1);}
.bShadow-3{-webkit-box-shadow:0 20px 60px -10px rgba(0,0,0,.1);-moz-box-shadow:0 20px 60px -10px rgba(0,0,0,.1);box-shadow:0 20px 60px -10px rgba(0,0,0,.1);}
.bShadow-4{-webkit-box-shadow:0 15px 45px -9px rgba(0,0,0,0.25);-moz-box-shadow:0 15px 45px -9px rgba(0,0,0,0.25);box-shadow:0 15px 45px -9px rgba(0,0,0,0.25);}
</style>
</body>
</html>
|
|
21.05.2018, 18:43
|
|
Профессор
|
|
Регистрация: 13.04.2018
Сообщений: 232
|
|
Void, без библиотеки не выводит, почему-то.
А можно сделать вывод только класса bshadow, без .Block, где содержимое класса = выведенному в результат, со скобками и кроссом на новой строке? Вроде генератора
|
|
21.05.2018, 19:00
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от madeas
|
Void, без библиотеки не выводит, почему-то.
|
здесь работает?
Сообщение от madeas
|
А можно сделать вывод только класса bshadow, без .Block,
|
можно
text = this.className.match(/bS\S+/)[0] + " " + $(this).css("box-shadow")
Сообщение от madeas
|
где содержимое класса = выведенному в результат, со скобками и кроссом на новой строке? Вроде генератора
|
не осилил
|
|
21.05.2018, 19:01
|
|
Профессор
|
|
Регистрация: 13.04.2018
Сообщений: 232
|
|
Ваш работает, void здесь не работает, может у меня проблема, не вижу результат просто
Последний раз редактировалось madeas, 21.05.2018 в 19:03.
|
|
21.05.2018, 19:06
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
madeas,
а какой браузер?
|
|
21.05.2018, 19:29
|
|
Профессор
|
|
Регистрация: 11.08.2017
Сообщений: 208
|
|
madeas,
1. Должно работать, проверил даже в IE. В демонстрации выше, вывод результата просто не помещается, надо прокрутить окошко (iframe), там ниже выводится.
2. Не понимаю, чего вы хотите добиться... Так?
result.innerHTML = '.bshadow { ' + styleItem.boxShadow + ' }';
Последний раз редактировалось void(), 21.05.2018 в 19:34.
|
|
21.05.2018, 19:41
|
|
Профессор
|
|
Регистрация: 13.04.2018
Сообщений: 232
|
|
рони,
Яндекс. Работает, видимо заглючил.
void(),
да, спасибо. Только хотел в более полном виде:
.bShadow-1 {
-webkit-box-shadow:0px 1px 1px 1px rgba(0,0,0,0.06);
-moz-box-shadow:0px 1px 1px 1px rgba(0,0,0,0.06);
box-shadow:0px 1px 1px 1px rgba(0,0,0,0.06);
}
.bShadow-2 {
-webkit-box-shadow:0 0 20px 0 rgba(150,150,150,.1);
-moz-box-shadow:0 0 20px 0 rgba(150,150,150,.1);
box-shadow:0 0 20px 0 rgba(150,150,150,.1);
}
и при нажатии на нужный input, чтобы он добавлялся или убирался из поля результата. Чтобы в конечном итоге получить несколько классов и их можно было скопировать.
Последний раз редактировалось madeas, 21.05.2018 в 19:51.
|
|
|
|