Уважаемые друзья и пользователи сайта ART-UCOZ!
Уведомляем вас о том, что мы приняли трудное, но обдуманное решение о закрытии проекта в качестве Интернет-магазина ART-UCOZ. С 05.11.2022 года сайт ART-UCOZ.RU продолжит работать в качестве каталога файлов, статей и информации. Будет закрыт только раздел интернет-магазина!
Все товары были перенесены в наш новый проект SHOPTHEMES - Vendor Marketplace (https://shopthemes.ru), над которым мы долго работали и продолжаем улучшать его в настоящее время.
Вас ждут: личный кабинет, возможность пополнения баланса на любую сумму, зачисление бонусов за посещение, перевод средств между пользователями, вывод средств (для продавцов), личный чат, больше новых цифровых товаров и многое другое.
Уведомляем вас о том, что мы приняли трудное, но обдуманное решение о закрытии проекта в качестве Интернет-магазина ART-UCOZ. С 05.11.2022 года сайт ART-UCOZ.RU продолжит работать в качестве каталога файлов, статей и информации. Будет закрыт только раздел интернет-магазина!
Все товары были перенесены в наш новый проект SHOPTHEMES - Vendor Marketplace (https://shopthemes.ru), над которым мы долго работали и продолжаем улучшать его в настоящее время.
Вас ждут: личный кабинет, возможность пополнения баланса на любую сумму, зачисление бонусов за посещение, перевод средств между пользователями, вывод средств (для продавцов), личный чат, больше новых цифровых товаров и многое другое.
Уважаемые пользователи!
Доводим до вашего сведения, что мы не занимаемся обучениями по системе uCoz и настройками Ваших сайтов.
Подобные просьбы и вопросы - будут игнорироваться!
Подобные просьбы и вопросы - будут игнорироваться!
Удаление элемента с применением анимации
Дата добавления: 07.03.2017 - 15:27
Категория: Хаки / Дополнения
Добавил: Buger
Количество просмотров: 1.2k
Количество комментариев: 0
Размер файла: 9.9 Kb
Рейтинг материала: 0.0 / 0
БЕСПЛАТНО
рейтинг
0.0
/
голосов
0
Возможно кому-то пригодится данное решение. Принцип работы заключается в удалении элемента при нажатии на кнопку.
Демонстрация в скачанном файле.
HTML разметка
CSS стили
Подключаем необходимые библиотеки
Пишем сам обработчик
Источник: http://art-ucoz.ru/
Демонстрация в скачанном файле.
HTML разметка
Код
<div id="content"></div>
CSS стили
Код
<style type="text/css">
.message {
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
height: 50px;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
left: 0;
position: absolute;
right: 0;
top: 0;
}
.messageAction {
-ms-flex-negative: 0;
flex-shrink: 0;
}
.messageContainer {
background-color: white;
border-bottom: 1px solid #eceeef;
border-top: 1px solid #eceeef;
box-sizing: border-box;
-ms-flex-negative: 0;
flex-shrink: 0;
margin-top: -2px;
overflow: hidden;
position: relative;
}
.messageList {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
margin: 20px;
width: 400px;
}
.messageListActions {
padding: 20px 0;
}
.messages {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: reverse;
-ms-flex-direction: column-reverse;
flex-direction: column-reverse;
-ms-flex-negative: 0;
flex-shrink: 0;
}
</style>
.message {
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
height: 50px;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
left: 0;
position: absolute;
right: 0;
top: 0;
}
.messageAction {
-ms-flex-negative: 0;
flex-shrink: 0;
}
.messageContainer {
background-color: white;
border-bottom: 1px solid #eceeef;
border-top: 1px solid #eceeef;
box-sizing: border-box;
-ms-flex-negative: 0;
flex-shrink: 0;
margin-top: -2px;
overflow: hidden;
position: relative;
}
.messageList {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
margin: 20px;
width: 400px;
}
.messageListActions {
padding: 20px 0;
}
.messages {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: reverse;
-ms-flex-direction: column-reverse;
flex-direction: column-reverse;
-ms-flex-negative: 0;
flex-shrink: 0;
}
</style>
Подключаем необходимые библиотеки
Код
<script src='https://unpkg.com/react@15.3.2/dist/react.js'></script>
<script src='https://unpkg.com/react-dom@15.3.2/dist/react-dom.js'></script>
<script src='https://unpkg.com/classnames@2.2.5/index.js'></script>
<script src='https://unpkg.com/immutable@3.8.1/dist/immutable.min.js'></script>
<script src='https://unpkg.com/d3@4.3.0/build/d3.min.js'></script>
<script src='https://unpkg.com/moment@2.17.1/min/moment.min.js'></script>
<script src='https://unpkg.com/bluebird@3.4.7/js/browser/bluebird.min.js'></script>
<script src='https://unpkg.com/axios@0.15.3/dist/axios.min.js'></script>
<script src='https://unpkg.com/react-motion@0.4.7/build/react-motion.js'></script>
<script src='https://unpkg.com/react-dom@15.3.2/dist/react-dom.js'></script>
<script src='https://unpkg.com/classnames@2.2.5/index.js'></script>
<script src='https://unpkg.com/immutable@3.8.1/dist/immutable.min.js'></script>
<script src='https://unpkg.com/d3@4.3.0/build/d3.min.js'></script>
<script src='https://unpkg.com/moment@2.17.1/min/moment.min.js'></script>
<script src='https://unpkg.com/bluebird@3.4.7/js/browser/bluebird.min.js'></script>
<script src='https://unpkg.com/axios@0.15.3/dist/axios.min.js'></script>
<script src='https://unpkg.com/react-motion@0.4.7/build/react-motion.js'></script>
Пишем сам обработчик
Код
<script>
"use strict";
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
function _possibleConstructorReturn(self, call) {
if (!self) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return call && (typeof call === "object" || typeof call === "function") ? call : self;
}
function _inherits(subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
enumerable: false,
writable: true,
configurable: true
}
});
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
var _ReactMotion = ReactMotion;
var spring = _ReactMotion.spring;
var TransitionMotion = _ReactMotion.TransitionMotion;
var MessageList = function (_React$Component) {
_inherits(MessageList, _React$Component);
function MessageList(props) {
_classCallCheck(this, MessageList);
var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
_this.state = {
messages: props.messages
};
return _this;
}
MessageList.prototype.render = function render() {
var _this2 = this;
var messages = this.state.messages;
var styles = messages.map(function (message) {
return {
key: message,
style: {
progress: spring(1)
},
data: message
};
}).toArray();
return React.createElement(
"div", {
className: "messageList"
},
React.createElement(
TransitionMotion
// willAppear styles
// defaultStyles={styles.map(style => ({
// key: style.key,
// style: { progress: 0 },
// }))}
, {
styles: styles,
willEnter: function willEnter() {
return {
progress: 0
};
},
willLeave: function willLeave() {
return {
progress: spring(0)
};
}
},
function (styles) {
return React.createElement(
"div", {
className: "messages"
},
styles.reverse().map(function (style) {
return React.createElement(
"div", {
className: "messageContainer",
key: style.key,
style: {
height: 50 * style.style.progress,
opacity: style.style.progress
}
},
React.createElement(
"div", {
className: "message"
},
React.createElement(
"div", {
className: "messageContent"
},
style.data
),
React.createElement(
"button", {
className: "messageAction btn btn-danger btn-sm",
onClick: function onClick() {
_this2.setState({
messages: messages.filter(function (message) {
return message !== style.key;
})
});
},
type: "button"
},
"Delete"
)
)
);
})
);
}
),
React.createElement(
"ul", {
className: "messageListActions list-inline"
},
React.createElement(
"li", {
className: "list-inline-item"
},
React.createElement(
"button", {
className: "btn btn-secondary",
onClick: function onClick() {
_this2.setState({
messages: _this2.props.messages
});
},
type: "button"
},
"Reset"
)
)
)
);
};
return MessageList;
}(React.Component);
var messages = Immutable.Range(0, 5).map(function (i) {
return "Message " + i;
}).toList();
ReactDOM.render(React.createElement(MessageList, {
messages: messages
}), document.getElementById('content'));
//# sourceURL=pen.js
</script>
"use strict";
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
function _possibleConstructorReturn(self, call) {
if (!self) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return call && (typeof call === "object" || typeof call === "function") ? call : self;
}
function _inherits(subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
enumerable: false,
writable: true,
configurable: true
}
});
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
var _ReactMotion = ReactMotion;
var spring = _ReactMotion.spring;
var TransitionMotion = _ReactMotion.TransitionMotion;
var MessageList = function (_React$Component) {
_inherits(MessageList, _React$Component);
function MessageList(props) {
_classCallCheck(this, MessageList);
var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
_this.state = {
messages: props.messages
};
return _this;
}
MessageList.prototype.render = function render() {
var _this2 = this;
var messages = this.state.messages;
var styles = messages.map(function (message) {
return {
key: message,
style: {
progress: spring(1)
},
data: message
};
}).toArray();
return React.createElement(
"div", {
className: "messageList"
},
React.createElement(
TransitionMotion
// willAppear styles
// defaultStyles={styles.map(style => ({
// key: style.key,
// style: { progress: 0 },
// }))}
, {
styles: styles,
willEnter: function willEnter() {
return {
progress: 0
};
},
willLeave: function willLeave() {
return {
progress: spring(0)
};
}
},
function (styles) {
return React.createElement(
"div", {
className: "messages"
},
styles.reverse().map(function (style) {
return React.createElement(
"div", {
className: "messageContainer",
key: style.key,
style: {
height: 50 * style.style.progress,
opacity: style.style.progress
}
},
React.createElement(
"div", {
className: "message"
},
React.createElement(
"div", {
className: "messageContent"
},
style.data
),
React.createElement(
"button", {
className: "messageAction btn btn-danger btn-sm",
onClick: function onClick() {
_this2.setState({
messages: messages.filter(function (message) {
return message !== style.key;
})
});
},
type: "button"
},
"Delete"
)
)
);
})
);
}
),
React.createElement(
"ul", {
className: "messageListActions list-inline"
},
React.createElement(
"li", {
className: "list-inline-item"
},
React.createElement(
"button", {
className: "btn btn-secondary",
onClick: function onClick() {
_this2.setState({
messages: _this2.props.messages
});
},
type: "button"
},
"Reset"
)
)
)
);
};
return MessageList;
}(React.Component);
var messages = Immutable.Range(0, 5).map(function (i) {
return "Message " + i;
}).toList();
ReactDOM.render(React.createElement(MessageList, {
messages: messages
}), document.getElementById('content'));
//# sourceURL=pen.js
</script>
Источник: http://art-ucoz.ru/
Добавлять комментарии могут только зарегистрированные пользователи.
Поделись с друзьями: